Download OpenAPI specification:
CrowdSec CAPI filtering proxy — internal management API + signals passthrough.
| limit | integer [ 1 .. 1000 ] Default: 100 |
| offset | integer >= 0 Default: 0 |
| filtered | boolean |
| forwardedToCapi | boolean |
| scenario | string <= 200 characters |
| country | string^[A-Z]{2}$ ISO 3166-1 alpha-2 country code |
| machineId | string <= 255 characters ^[a-zA-Z0-9_\-.:]+$ |
| ip | string |
| since | string <date-time> ISO 8601 date-time string |
| until | string <date-time> ISO 8601 date-time string |
| newerThan | string <date-time> ISO 8601 date-time string |
[- {
- "id": 0,
- "uuid": "string",
- "machineId": "string",
- "scenario": "string",
- "scenarioHash": "string",
- "scenarioVersion": "string",
- "message": "string",
- "eventsCount": 0,
- "capacity": 0,
- "leakspeed": "string",
- "startAt": "string",
- "stopAt": "string",
- "createdAt": "string",
- "receivedAt": "string",
- "simulated": true,
- "remediation": true,
- "hasDecisions": true,
- "replicated": true,
- "sourceScope": "string",
- "sourceValue": "string",
- "sourceIp": "string",
- "sourceRange": "string",
- "sourceAsNumber": "string",
- "sourceAsName": "string",
- "sourceCn": "string",
- "geoCountryCode": "string",
- "geoCountryName": "string",
- "geoCity": "string",
- "geoRegion": "string",
- "geoLatitude": 0,
- "geoLongitude": 0,
- "geoTimezone": "string",
- "geoIsp": "string",
- "geoOrg": "string",
- "filtered": true,
- "filterReasons": "string",
- "forwardedToCapi": true,
- "forwardedAt": "string",
- "localAudit": true,
- "actor": "string",
- "rawJson": "string"
}
]{- "id": 0,
- "uuid": "string",
- "machineId": "string",
- "scenario": "string",
- "scenarioHash": "string",
- "scenarioVersion": "string",
- "message": "string",
- "eventsCount": 0,
- "capacity": 0,
- "leakspeed": "string",
- "startAt": "string",
- "stopAt": "string",
- "createdAt": "string",
- "receivedAt": "string",
- "simulated": true,
- "remediation": true,
- "hasDecisions": true,
- "replicated": true,
- "sourceScope": "string",
- "sourceValue": "string",
- "sourceIp": "string",
- "sourceRange": "string",
- "sourceAsNumber": "string",
- "sourceAsName": "string",
- "sourceCn": "string",
- "geoCountryCode": "string",
- "geoCountryName": "string",
- "geoCity": "string",
- "geoRegion": "string",
- "geoLatitude": 0,
- "geoLongitude": 0,
- "geoTimezone": "string",
- "geoIsp": "string",
- "geoOrg": "string",
- "filtered": true,
- "filterReasons": "string",
- "forwardedToCapi": true,
- "forwardedAt": "string",
- "localAudit": true,
- "actor": "string",
- "rawJson": "string"
}{- "total": 0,
- "filtered": 0,
- "forwarded": 0,
- "topScenarios": [
- {
- "scenario": "string",
- "count": 0
}
], - "allScenarios": [
- {
- "scenario": "string",
- "count": 0
}
], - "topCountries": [
- {
- "country": "string",
- "count": 0
}
], - "timeBounds": {
- "min": "string",
- "max": "string"
}
}string or string or string Lookback window: 7 days, 30 days, or all-time |
{- "byDayOfWeek": [
- {
- "day": 0,
- "dayName": "string",
- "count": 0
}
], - "byHourOfDay": [
- {
- "hour": 0,
- "count": 0
}
], - "byCountry": [
- {
- "countryCode": "string",
- "countryName": "string",
- "count": 0
}
], - "byScenario": [
- {
- "scenario": "string",
- "count": 0
}
], - "dailyTrend": [
- {
- "date": "string",
- "count": 0
}
], - "totalAlerts": 0,
- "dateRange": {
- "from": "string",
- "to": "string"
}
}string or string or string Lookback window: 7 days, 30 days, or all-time |
{- "totalDecisions": 0,
- "byDayOfWeek": [
- {
- "day": 0,
- "dayName": "string",
- "count": 0
}
], - "byHourOfDay": [
- {
- "hour": 0,
- "count": 0
}
], - "byDurationCategory": [
- {
- "category": "string",
- "count": 0
}
], - "topScenarios": [
- {
- "scenario": "string",
- "count": 0
}
], - "byCountry": [
- {
- "countryCode": "string",
- "countryName": "string",
- "count": 0
}
]
}| ip required | string [ 1 .. 64 ] characters |
{- "ip": "string",
- "reverseDns": [
- "string"
], - "whois": {
- "netName": "string",
- "netRange": "string",
- "cidr": "string",
- "organization": "string",
- "country": "string",
- "descr": "string",
- "abuse": "string"
}, - "error": "string"
}| ip required | string non-empty |
{- "ip": "string",
- "results": [
- {
- "server": "string",
- "decisions": [
- {
- "id": 0,
- "origin": "string",
- "type": "string",
- "scope": "string",
- "value": "string",
- "duration": "string",
- "scenario": "string",
- "until": "string"
}
], - "error": "string"
}
], - "shared": [
- {
- "id": 0,
- "origin": "string",
- "type": "string",
- "scope": "string",
- "value": "string",
- "duration": "string",
- "scenario": "string",
- "until": "string"
}
]
}| server required | string^[a-zA-Z0-9_-]+$ |
| ip required | string non-empty |
| duration required | string^\d+[smh]$ Duration like 30s, 5m, 4h, 24h |
| reason required | string [ 1 .. 500 ] characters |
{- "server": "string",
- "ip": "string",
- "duration": "string",
- "reason": "string"
}{- "success": true,
- "message": "string",
- "server": "string"
}| id required | integer >= 1 |
| server required | string^[a-zA-Z0-9_-]+$ |
| reason required | string [ 1 .. 500 ] characters |
| ip required | string non-empty |
{- "reason": "string",
- "ip": "string"
}{- "success": true,
- "message": "string",
- "server": "string"
}Receives a batch of CrowdSec alerts, runs them through the configured filters, stores them locally, replicates relevant decisions to LAPI servers, and forwards non-filtered, non-loop alerts to the upstream CAPI.
| property name* additional property | any |
[- { }
]{- "message": "string"
}Receives a batch of CrowdSec alerts, runs them through the configured filters, stores them locally, replicates relevant decisions to LAPI servers, and forwards non-filtered, non-loop alerts to the upstream CAPI.
| property name* additional property | any |
[- { }
]{- "message": "string"
}