Plugins
The plugins endpoint allows you to list available detection plugins and get details about a specific plugin.
GET /api/plugins
Returns a list of all available plugins with their event counts.
Parameters
| name | placement | comment |
|---|---|---|
| accept | header | Must be set to application/json |
Example
1#!/usr/bin/env bash
2API_KEY="YOUR_API_KEY"
3
4curl -H "api-key: ${API_KEY}" \
5 -H 'accept: application/json' \
6 "https://leakix.net/api/plugins"
1from leakix import Client
2
3client = Client(api_key="YOUR_API_KEY")
4response = client.get_plugins()
5for plugin in response.json():
6 print(plugin.name, plugin.description)
Successful response
Receiving 200 means the request was successful and an array of plugins is
returned:
1[
2 {
3 "name": "DotDsStoreOpenPlugin",
4 "description": "Checks for publicly accessible .DS_Store files",
5 "event_count24h": 1234,
6 "event_count7d": 8765,
7 "event_count1h": 56
8 },
9 {
10 "name": "ElasticSearchOpenPlugin",
11 "description": "Checks for open Elasticsearch instances",
12 "event_count24h": 567,
13 "event_count7d": 3456,
14 "event_count1h": 23
15 }
16]
| field | type | description |
|---|---|---|
| name | string | Plugin identifier |
| description | string | Human-readable description of the plugin |
| event_count1h | int | Number of events in the last hour |
| event_count24h | int | Number of events in the last 24 hours |
| event_count7d | int | Number of events in the last 7 days |
GET /api/plugins/:name
Returns details about a specific plugin.
Parameters
| name | placement | comment |
|---|---|---|
| accept | header | Must be set to application/json |
| name | url parameter | The plugin name |
Example
1#!/usr/bin/env bash
2API_KEY="YOUR_API_KEY"
3PLUGIN="ElasticSearchOpenPlugin"
4
5curl -H "api-key: ${API_KEY}" \
6 -H 'accept: application/json' \
7 "https://leakix.net/api/plugins/${PLUGIN}"
1from leakix import Client
2
3client = Client(api_key="YOUR_API_KEY")
4# Use the plugins list endpoint and filter by name
5response = client.get_plugins()
6for plugin in response.json():
7 if plugin.name == "ElasticSearchOpenPlugin":
8 print(plugin)
Successful response
Receiving 200 means the request was successful:
1{
2 "name": "ElasticSearchOpenPlugin",
3 "description": "Checks for open Elasticsearch instances"
4}
Error response
Receiving 404 means the plugin was not found:
1"Plugin not found"
Rate limiting
All requests to LeakIX.net's API are limited at ~1 request per second.
If the limit is reached, the API will return a 429 http status code and a
x-limited-for header.
The client MUST wait for the duration of x-limited-for before the next
request.
1HTTP/1.1 429 Rate-limited
2Date: Mon, 27 Jul 2009 12:28:53 GMT
3x-limited-for: 344.24ms