{"components":{"schemas":{"CheckResult":{"properties":{"abuseConfidenceScore":{"maximum":100,"minimum":0,"type":"integer"},"abuseContact":{"type":["object","string","null"]},"asn":{"type":["integer","null"]},"asnDomain":{"type":["string","null"]},"asnDrop":{"type":["object","null"]},"asnName":{"type":["string","null"]},"asnOrg":{"type":["string","null"]},"blacklistSources":{"items":{"type":"string"},"type":"array"},"city":{"type":["string","null"]},"countryCode":{"type":["string","null"]},"countryName":{"type":["string","null"]},"distinctReporters":{"type":"integer"},"dnsbl":{"items":{"properties":{"codes":{"items":{"type":"string"},"type":"array"},"label":{"type":"string"},"listed":{"type":"boolean"},"zone":{"type":"string"}},"type":"object"},"type":"array"},"ipAddress":{"type":"string"},"ipVersion":{"enum":[4,6],"type":"integer"},"isPrivate":{"type":"boolean"},"isp":{"type":["string","null"]},"lastReportedAt":{"format":"date-time","type":["string","null"]},"liftedListing":{"type":["object","null"]},"networkType":{"enum":["residential","datacenter","vpn","tor","unknown"],"type":"string"},"prefixNeighbourhood":{"type":["object","null"]},"reportUrl":{"description":"Public IP-DB report for this address, in the key owner's language.","format":"uri","type":"string"},"scoreBreakdown":{"properties":{"dnsbl":{"type":"integer"},"feeds":{"type":"integer"},"liftedListing":{"type":"integer"},"neighbourhood":{"type":"integer"},"reports":{"type":"integer"}},"type":"object"},"scoreLabel":{"enum":["clean","low","suspicious","critical"],"type":"string"},"totalReports":{"type":"integer"}},"type":"object"},"Error":{"properties":{"error":{"type":"string"}},"type":"object"}},"securitySchemes":{"ApiKey":{"in":"header","name":"Key","type":"apiKey"},"ApiKeyQuery":{"in":"query","name":"key","type":"apiKey"}}},"externalDocs":{"url":"https://ip-db.com/en/api-docs"},"info":{"contact":{"email":"info@ip-db.com","name":"IP-DB","url":"https://ip-db.com"},"description":"IP-DB (ip-db.com) is a free IP reputation and abuse IP database. It checks any IPv4 or IPv6 address against 46 open threat-intelligence blocklists, community abuse reports and live DNSBL/RBL spam blacklists, and returns a 0-100 abuse confidence score with the evidence behind it, plus WHOIS/RDAP ownership, the network's abuse contact, ASN, geolocation and VPN/proxy/Tor/hosting detection. Free key: 1,000 requests/day (10,000 with a verified email). Get one at https://ip-db.com/en/account/register.","summary":"IP reputation, abuse score, blacklist and VPN/proxy/Tor detection for any IP address.","termsOfService":"https://ip-db.com/en/terms","title":"IP-DB IP Reputation API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/blacklist":{"get":{"operationId":"listBlacklist","parameters":[{"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}},{"in":"query","name":"category","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"properties":{"category":{"type":"string"},"cidr":{"type":"string"},"lastSeen":{"format":"date-time","type":"string"},"source":{"type":"string"}},"type":"object"},"type":"array"},"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"}},"type":"object"}}},"description":"Page of entries"}},"summary":"The blocklist pool, paginated"}},"/check/{ip}":{"get":{"description":"Returns the 0-100 abuse confidence score with its breakdown, matching blacklists, DNSBL listings, network type (residential, datacenter, vpn, tor), owner, abuse contact and community report counts.","operationId":"checkIp","parameters":[{"description":"IPv4 or IPv6 address","in":"path","name":"ip","required":true,"schema":{"examples":["185.220.101.1"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResult"}}},"description":"Report"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid IP address"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid key"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Daily limit reached"}},"summary":"Reputation, abuse score and blacklist status of one IP address"}},"/feed.txt":{"get":{"description":"The highest-scoring redistributable, consensus-backed addresses, one per line. Tiered per account so one fetch cannot mirror the whole pool (a higher cap is free on request); the complete set is free in bulk at /datasets. Counts toward daily usage.","operationId":"blocklistFeed","parameters":[{"description":"Restrict to one category (e.g. tor_exit, botnet_c2, ssh_brute_force).","in":"query","name":"category","schema":{"type":"string"}},{"description":"Only addresses scoring at least this (0-100).","in":"query","name":"min_score","schema":{"maximum":100,"minimum":0,"type":"integer"}},{"description":"Max addresses, capped at the account's feed quota; 'all' for the cap.","in":"query","name":"limit","schema":{"type":"string"}},{"description":"plain (default, one IP per line), cidr (/32, /128), json or csv.","in":"query","name":"format","schema":{"enum":["plain","cidr","json","csv"],"type":"string"}},{"description":"comments=1 prepends a '#' header block (plain/cidr only).","in":"query","name":"comments","schema":{"type":"string"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"type":"string"}}},"description":"IP list","headers":{"ETag":{"description":"Conditional GET: send back as If-None-Match to get 304 while unchanged.","schema":{"type":"string"}},"X-Feed-Cap":{"description":"This account's per-fetch cap.","schema":{"type":"integer"}},"X-Feed-Entries":{"description":"Addresses returned.","schema":{"type":"integer"}},"X-Feed-Generated":{"description":"Snapshot build time (UTC).","schema":{"type":"string"}},"X-Feed-Matching":{"description":"Addresses matching the filters before the cap.","schema":{"type":"integer"}}}},"304":{"description":"Snapshot unchanged since If-None-Match / If-Modified-Since"},"401":{"description":"Missing or invalid API key"},"503":{"description":"Snapshot temporarily unavailable"}},"security":[{"ApiKeyQuery":[]}],"summary":"Plain-text blocklist, one IP per line, for firewalls"}},"/report":{"post":{"operationId":"reportIp","requestBody":{"content":{"application/json":{"schema":{"properties":{"categories":{"items":{"enum":["brute_force","port_scan","web_attack","ssh_abuse","spam","ddos","malware","fraud","phishing","exploit","vuln_scan","credential_stuffing","iot_abuse","web_spam","ransomware","cryptomining_abuse","bad_bot","open_proxy"],"type":"string"},"type":"array"},"comment":{"description":"Log lines, timestamps, context","type":"string"},"ip":{"type":"string"}},"required":["ip","categories"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"reportId":{"type":"integer"},"success":{"type":"boolean"}},"type":"object"}}},"description":"Report stored"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid key"}},"summary":"Report an abusive IP address"}}},"security":[{"ApiKey":[]}],"servers":[{"url":"https://ip-db.com/api/v1"}]}
