Skip to content

Scan IP addresses for abuse confidence, geolocation, usage type and more. Built on Flask with AbuseIPDB integration, this API includes rate-limiting, analytics, and caching.

Notifications You must be signed in to change notification settings

Talabov/IP-Reputation-Checker-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 

Repository files navigation

🌐 IP Reputation Checker API


A full-featured REST API to check IP addresses for abuse reputation, country, and usage type using AbuseIPDB, with built-in API key management, rate limiting, caching, and analytics dashboard.

Includes: Dockerfile, modular project structure, SQLite stats, real-world endpoints, and quick setup.

πŸ‘‰ Buy it on Gumroad


A modern Flask REST API that lets you instantly check single or bulk IPs, with caching, daily rate limits per key, and easy integration into your stack. Great for SaaS, web tools, fraud prevention, and sysadmins.


βœ… Key Features

  • πŸ”‘ API key management with daily rate limits (per user)
  • 🧠 Built-in caching (reduces AbuseIPDB calls, free tier ready)
  • πŸ“Š Analytics endpoints (top countries, usage types, stats)
  • 🌍 Bulk IP checks (POST with array)
  • πŸ›‘ Real AbuseIPDB reputation & usage type
  • πŸ—„ SQLite storage: cache, users, statistics
  • ⚑ Fast: avoids double-charging for same IPs
  • 🐳 Docker-ready

πŸš€ Endpoints

Check IP Reputation

GET /check?ip=1.2.3.4
Headers: X-API-KEY: your_key (or as ?api_key param)

Response: { "ip": "1.2.3.4", "isPublic": true, "abuseConfidenceScore": 67, "countryCode": "US", "isWhitelisted": false, "usageType": "Data Center/Web Hosting/Transit" }


Bulk IP Check

POST /check_bulk
Headers: X-API-KEY: your_key
Body: {"ips": ["1.2.3.4", "8.8.8.8", "185.199.111.153"]} Response: {"results": [ {...}, {...}, {...} ]}


API Key Daily Limit

  • Each API key is limited to 100 checks/day by default.
  • Returns 429 if you exceed your quota.

Analytics & Stats

GET /stats
Shows total checks, unique IPs, top countries, and usage types.


β›” Error Handling

{"error": "Missing API key"} {"error": "No IP provided"} {"error": "Invalid IP address"} {"error": "Daily limit exceeded"} {"error": "External API error: ..."}


βš™οΈ Requirements

pip install -r requirements.txt

  • Flask
  • requests
  • python-dotenv

πŸ–₯ How to Run

python IP\ Reputation\ Checker\ API.py

Or use Docker:

docker build -t ip-rep-api . docker run -p 5000:5000 ip-rep-api


πŸ§ͺ Example Screenshots

  • βœ… GET /check?ip=1.2.3.4
  • βœ… POST /check_bulk
  • βœ… GET /stats
  • ⚠️ Error cases
  • See /screens/ for UI and result examples.

πŸ’Ό Ready-to-Use Version

Get the ZIP with the full project, Docker, and docs:

πŸ‘‰ Buy it on Gumroad


πŸ“¬ Contacts


Need this in another language/stack (Node.js, Go, etc)?
Custom dev available β€” just reach out.

About

Scan IP addresses for abuse confidence, geolocation, usage type and more. Built on Flask with AbuseIPDB integration, this API includes rate-limiting, analytics, and caching.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published