Submit a report for a suspicious IP address. Reports contribute to the community threat intelligence database and are factored into confidence level calculations.
Each report is associated with your API key. There is no deduplication - multiple reports for the same IP increase its report count, which is a signal in the risk scoring algorithm.
curl -X POST "https://api.sikkerapi.com/v1/key/report" \
-H "Authorization: Bearer sk_free_..." \
-H "Content-Type: application/json" \
-d '{
"ip": "203.0.113.42",
"category": "brute_force",
"protocol": "ssh",
"comment": "Multiple failed login attempts"
}'The request body must be JSON with the following fields:
| Field | Type | Required | Description |
|---|---|---|---|
| ip | string | Yes | IPv4 or IPv6 address to report. |
| category | string | int | Yes | Attack category. Can be a name (e.g. brute_force) or numeric ID (1-16). |
| protocol | string | No | Protocol involved (e.g. ssh, http). Max 32 characters. |
| comment | string | No | Additional context about the suspicious activity. Max 1000 characters. |
curl -X POST "https://api.sikkerapi.com/v1/key/report" \
-H "Authorization: Bearer sk_free_..." \
-H "Content-Type: application/json" \
-d '{"ip": "203.0.113.42", "category": "brute_force"}'curl -X POST "https://api.sikkerapi.com/v1/key/report" \
-H "Authorization: Bearer sk_free_..." \
-H "Content-Type: application/json" \
-d '{"ip": "2001:db8::1", "category": 1}'Reports must specify a category describing the type of suspicious activity observed. You can use either the string name or numeric ID.
| ID | Name | Description |
|---|---|---|
| 1 | brute_force | Brute force / credential stuffing attacks |
| 2 | port_scan | Port scanning / reconnaissance |
| 3 | ddos | DDoS / botnet activity |
| 4 | web_exploit | Web application exploitation |
| 5 | sql_injection | SQL injection attempts |
| 6 | phishing | Phishing / social engineering |
| 7 | spam | Spam / email abuse |
| 8 | bad_bot | Bad bots / scrapers |
| 9 | exploited_host | Compromised / exploited host |
| 10 | malware | Malware distribution |
| 11 | dns_abuse | DNS abuse / tunneling |
| 12 | open_proxy | Open proxy / relay |
| 13 | iot_targeted | IoT device targeting |
| 14 | spoofing | IP / identity spoofing |
| 15 | fraud | Fraud / financial abuse |
| 16 | other | Other suspicious activity |
Both formats are equivalent:
{
"ip": "203.0.113.42",
"category": "brute_force"
}{
"ip": "203.0.113.42",
"category": 1
}A successful report returns a simple confirmation. Errors return a JSON object with an error field.
| Status | Meaning |
|---|---|
| 200 | Report submitted successfully. |
| 400 | Invalid request (bad IP, missing category, etc.). |
| 401 | Missing or invalid API key. |
| 403 | API key is disabled or expired. |
| 429 | Rate limit exceeded. Check Retry-After header. |
{
"success": true
}{
"error": "Invalid IP address"
}{
"error": "Invalid category (use 1-16 or name like 'brute_force')"
}{
"error": "Rate limit exceeded"
}Report submissions are rate-limited per API key. Limits vary by tier:
| Tier | Reports/Day |
|---|---|
| Free | 1,000 |
| Basic | 7,000 |
| Small Business | 14,000 |
| Medium Business | 30,000 |
| Large Business | 100,000 |
When rate limited, the response includes a Retry-After header indicating how many seconds to wait before retrying.
Rate limit headers on 429 responses:
HTTP/1.1 429 Too Many Requests Retry-After: 5 Content-Type: application/json
Get started — Start reporting suspicious IPs to the community threat database. Free tier includes 1,000 reports per day. Create free API key →