Check an IP Address
Instantly check whether an IP address appears on the blacklist. Both IPv4 and IPv6 are supported.
Recent Queries
The last 20 queries made in this session. History is cleared when the page is refreshed.
Endpoints
All endpoints return JSON. No authentication is required; rate limiting is enforced per source IP.
Checks the given IP address against the blacklist. Both exact IP matches and CIDR block containment are evaluated.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | Required | The IP address to look up. IPv4 and IPv6 are both supported. |
GET /check?ip=1.2.3.4 Host: blacklist.zumbo.net
{ "listed": true }
{ "listed": false }
{ "error": "Geçersiz IP adresi" }
Returns metadata about the active dataset: total record counts and the timestamp of the last successful update.
GET /meta Host: blacklist.zumbo.net
{
"last_updated": "2024-01-15T08:30:00Z",
"total_parsed_ips": 142857,
"total_parsed_cidrs": 3210
}
Reports whether the service is ready to handle requests. Use this for Kubernetes readiness probes or load balancer health checks.
Returns 503 while the dataset is still loading on cold start.
{ "status": "healthy" }
{ "status": "loading" }
Rate Limiting
Requests are throttled per source IP using a token bucket algorithm.
| Rule | Value | Description |
|---|---|---|
| Rate | 10 req/s | Token bucket refill rate (sustained throughput) |
| Burst | 30 req | Maximum instantaneous request capacity |
| TTL | 10 minutes | Idle IP eviction window |
{ "error": "Too Many Requests" }
HTTP Status Codes
All error responses are JSON objects containing an error key with a description.
| Code | Meaning | Description |
|---|---|---|
| 200 | OK | Query succeeded. Inspect the listed field. |
| 400 | Bad Request | The ip parameter is missing or not a valid IP address. |
| 405 | Method Not Allowed | Only GET requests are accepted on this endpoint. |
| 429 | Too Many Requests | Rate limit exceeded. Back off and retry after a few seconds. |
| 503 | Service Unavailable | Dataset not yet loaded (cold start). Retry shortly. |
atomic.Pointer.
In-flight requests always see a complete, consistent snapshot — the old dataset is never torn down mid-request.