One key, one gateway
Use a Dakidarts API key with read or write scopes and control which APIs that key can reach.
IP and domain threat intelligence with AbuseIPDB reputation and reports, geolocation/ASN enrichment, DNS resolution, batch/CIDR scans and caller-supplied provider keys.
0 of 18 endpoints have an upstream URL configured. Other routes return 503 before billing; only send live requests to configured routes. The gateway injects upstream credentials for you.
Live checkout opens after an API route has an upstream URL. Preview examples are available below.
https://api.dakidarts.com/ip-reputation-checkerX-API-Key: dk_live_...GET /ipinfoUse a Dakidarts API key with read or write scopes and control which APIs that key can reach.
Wallet credits, plan quotas and organization invoices are settled per request with transparent response headers.
Latency, upstream status and execution mode are logged so integration issues are visible before they spread.
Keep the direct Dakidarts gateway as your primary route, or use the RapidAPI listing when marketplace billing and key management fit your stack better.
The best API is the one your team can integrate, observe and then stop thinking about.
Designed as a composable building block for product teams, internal tooling and automation.
Designed as a composable building block for product teams, internal tooling and automation.
Designed as a composable building block for product teams, internal tooling and automation.
Selected facts about coverage, delivery and production readiness.
Access, billing and integration details for IP Reputation Checker API.
Risk signals related to abuse, fraud and IP reputation.
At sign-up, checkout or other trust-sensitive actions where IP risk matters.
No. It returns signals that your application combines with its own policy.
Subscribe on the Dakidarts dashboard, then call the gateway with an API key.
It reflects the current data available to the service; reputation can change over time.
Plans are shown for reference. Live checkout opens after an API route has an upstream URL.
$0.00 / month
Start with a Dakidarts key, call the gateway, then monitor usage from the dashboard.
Choose the API scope, then copy the key into your server environment.
Send requests to https://api.dakidarts.com/ip-reputation-checker with your key and JSON body.
Track calls, latency and spend from the API dashboard and wallet.
These routes include contracts imported from the product implementation. 0 of 18 endpoints have an upstream URL configured. Other routes return 503 before billing; saved examples are previews only. Configure an upstream URL in API Studio to enable those routes.
Analysis endpoints sourced from the IP Reputation Checker API implementation.
/domain/{domain_raw}
Domain Scan
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Resolve a domain to all its IP addresses and scan the reputation of every one. Accepts bare domains, subdomains, or full URLs.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/domain/{domain}Resolve a domain to all its IP addresses and scan the reputation of every one. Accepts bare domains, subdomains, or full URLs.
Methods: GET, POST
Parameters:
domain *(path, required)* → Domain, subdomain, or URL (e.g. example.com, https://example.com/page)max_age *(int, optional, default 90)* → Look-back window in days (1–365)include_reports *(bool, optional)* → Include full report listsforce_refresh *(bool, optional)* → Bypass cacheX-AbuseIPDB-Key *(header, optional)* → Your own AbuseIPDB key (BYOK)Example Request (GET):
GET /domain/example.com
Example Request (GET — with options):
GET /domain/https://example.com/page?include_reports=1&max_age=30
Example Response:
{
"success": true,
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/domain/example.com",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 540.3
},
"data": {
"input": "example.com",
"addresses": ["93.184.216.34", "2606:2800:220:1:248:1893:25c8:1946"],
"scanned": 2,
"results": [
{ "input": "93.184.216.34", "cached": false, "analysis": { "risk_score": 0, "category": "Clean", "...": "..." } },
{ "input": "2606:2800:220:1:248:1893:25c8:1946", "cached": false, "analysis": { "risk_score": 0, "category": "Clean", "...": "..." } }
]
}
}
Errors:
400 → Invalid domain400 → no_addresses if the domain doesn't resolveSource contract imported from ip reputation checker/routes/domain.py. Handler: domain_scan. Reference: RAPID_README.md.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
domain_raw | path | string | Yes | Domain name supplied in the URL path. |
max_age | query | integer | No | AbuseIPDB look-back window in days (1–365). |
force_refresh | query | boolean | No | Bypass the cache and query AbuseIPDB live. |
include_reports | query | boolean | No | Include the full abuse report list in the result. |
X-AbuseIPDB-Key | header | string | No | Optional AbuseIPDB API key for BYOK; otherwise the configured server key is used. |
curl -X GET 'https://api.dakidarts.com/ip-reputation-checker/domain/example.com?max_age=90&force_refresh=False&include_reports=False' -H 'X-API-Key: dk_live_...' -H 'Accept: application/json' -H 'X-AbuseIPDB-Key: YOUR_X_ABUSEIPDB_KEY'
/domain/{domain_raw}
Domain Scan
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Resolve a domain to all its IP addresses and scan the reputation of every one. Accepts bare domains, subdomains, or full URLs.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/domain/{domain}Resolve a domain to all its IP addresses and scan the reputation of every one. Accepts bare domains, subdomains, or full URLs.
Methods: GET, POST
Parameters:
domain *(path, required)* → Domain, subdomain, or URL (e.g. example.com, https://example.com/page)max_age *(int, optional, default 90)* → Look-back window in days (1–365)include_reports *(bool, optional)* → Include full report listsforce_refresh *(bool, optional)* → Bypass cacheX-AbuseIPDB-Key *(header, optional)* → Your own AbuseIPDB key (BYOK)Example Request (GET):
GET /domain/example.com
Example Request (GET — with options):
GET /domain/https://example.com/page?include_reports=1&max_age=30
Example Response:
{
"success": true,
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/domain/example.com",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 540.3
},
"data": {
"input": "example.com",
"addresses": ["93.184.216.34", "2606:2800:220:1:248:1893:25c8:1946"],
"scanned": 2,
"results": [
{ "input": "93.184.216.34", "cached": false, "analysis": { "risk_score": 0, "category": "Clean", "...": "..." } },
{ "input": "2606:2800:220:1:248:1893:25c8:1946", "cached": false, "analysis": { "risk_score": 0, "category": "Clean", "...": "..." } }
]
}
}
Errors:
400 → Invalid domain400 → no_addresses if the domain doesn't resolveSource contract imported from ip reputation checker/routes/domain.py. Handler: domain_scan. Reference: RAPID_README.md.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
domain_raw | path | string | Yes | Domain name supplied in the URL path. |
max_age | body | integer | No | AbuseIPDB look-back window in days (1–365). |
force_refresh | body | boolean | No | Bypass the cache and query AbuseIPDB live. |
include_reports | body | boolean | No | Include the full abuse report list in the result. |
X-AbuseIPDB-Key | header | string | No | Optional AbuseIPDB API key for BYOK; otherwise the configured server key is used. |
curl -X POST https://api.dakidarts.com/ip-reputation-checker/domain/example.com -H 'X-API-Key: dk_live_...' -H 'Accept: application/json' -H 'X-AbuseIPDB-Key: YOUR_X_ABUSEIPDB_KEY' -H 'Content-Type: application/json' -d '{"max_age": 90, "force_refresh": false, "include_reports": false}'
/scan
Scan
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Analyze an IP address for reputation, abuse history, and risk score. Results are cached for 24 hours for fast repeat lookups.
Snapshot from
docs/api-reference.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
GET/POST /scanSingle IP reputation scan against AbuseIPDB, served from a 24 h SQLite cache when possible.
Parameters (query string for GET, JSON body for POST):
| Param | Type | Default | Description |
|---|---|---|---|
ip | string | — | Required. IPv4 or IPv6 address |
max_age | int | 90 | Look-back window in days (1–365) for AbuseIPDB |
force_refresh | bool | false | Bypass the cache and hit AbuseIPDB live |
include_reports | bool | false | Include the full abuse report list |
geo | bool | false | Attach geolocation/ASN data to the analysis |
Headers: X-AbuseIPDB-Key (optional, BYOK)
curl "http://localhost:5000/scan?ip=8.8.8.8&include_reports=1"
curl -X POST http://localhost:5000/scan \
-H "Content-Type: application/json" \
-H "X-AbuseIPDB-Key: your_key" \
-d '{"ip":"8.8.8.8","max_age":90,"include_reports":true}'
{
"success": true,
"meta": { "api": "IP Reputation Checker", "version": "v0.0.2", "endpoint": "/scan", "latency_ms": 241.1, "key_source": "server" },
"data": {
"input": "8.8.8.8",
"cached": false,
"analysis": {
"ip": "8.8.8.8",
"risk_score": 0,
"risk_level": "low",
"category": "Residential ISP",
"is_whitelisted": false,
"country_code": "US",
"isp": "Google LLC",
"is_public": true,
"ip_version": 4,
"usage_type": "Fixed Line ISP",
"domain": "google.com",
"is_tor": false,
"num_distinct_users": 5,
"total_reports": 2,
"last_reported_at": "2026-08-01T00:00:00Z",
"reports": [
{
"reported_at": "2026-08-01T00:00:00Z",
"comment": "DDoS bot",
"categories": [4],
"reporter_id": 123,
"reporter_country_code": "US",
"reporter_country_name": "United States"
}
],
"checked_at": "2026-08-27T21:30:00Z"
}
}
}
data.analysis fields:
| Field | Description |
|---|---|
ip | The scanned address |
risk_score | AbuseIPDB abuse confidence score (0–100) |
risk_level | low (< 40) / medium (40–74) / high (≥ 75) |
category | Human label: Clean, Suspicious, Malicious, Proxy/VPN, Hosting Service, Crawler/Bot, Mobile ISP, Residential ISP, Institutional Network |
is_whitelisted | Whether AbuseIPDB whitelists the address |
country_code | ISO-3166 alpha-2 country code |
isp | Internet service provider |
is_public | Whether the address is public |
ip_version | 4 or 6 |
usage_type | Raw AbuseIPDB usage type |
domain | Reverse-mapped domain, if any |
is_tor | Whether the address is a known Tor exit node |
num_distinct_users | Distinct reporters count |
total_reports | Total abuse reports in the look-back window |
last_reported_at | Timestamp of the most recent report |
reports | Array of report objects (only when include_reports=1) |
geo | Geolocation object (only when geo=1) |
checked_at | When the data was fetched |
Source contract imported from ip reputation checker/routes/scan.py. Handler: scan. Reference: docs/api-reference.md.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
max_age | query | integer | No | Look-back window in days (1–365) for AbuseIPDB |
force_refresh | query | boolean | No | Bypass the cache and hit AbuseIPDB live |
include_reports | query | boolean | No | Include the full abuse report list |
geo | query | boolean | No | Attach geolocation/ASN data to the analysis |
ip | query | string | Yes | IPv4 or IPv6 address to check against AbuseIPDB. |
X-AbuseIPDB-Key | header | string | No | Optional AbuseIPDB API key for BYOK; otherwise the configured server key is used. |
curl -X GET 'https://api.dakidarts.com/ip-reputation-checker/scan?max_age=90&force_refresh=False&include_reports=False&geo=False&ip=8.8.8.8' -H 'X-API-Key: dk_live_...' -H 'Accept: application/json' -H 'X-AbuseIPDB-Key: YOUR_X_ABUSEIPDB_KEY'
/scan
Scan
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Analyze an IP address for reputation, abuse history, and risk score. Results are cached for 24 hours for fast repeat lookups.
Snapshot from
docs/api-reference.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
GET/POST /scanSingle IP reputation scan against AbuseIPDB, served from a 24 h SQLite cache when possible.
Parameters (query string for GET, JSON body for POST):
| Param | Type | Default | Description |
|---|---|---|---|
ip | string | — | Required. IPv4 or IPv6 address |
max_age | int | 90 | Look-back window in days (1–365) for AbuseIPDB |
force_refresh | bool | false | Bypass the cache and hit AbuseIPDB live |
include_reports | bool | false | Include the full abuse report list |
geo | bool | false | Attach geolocation/ASN data to the analysis |
Headers: X-AbuseIPDB-Key (optional, BYOK)
curl "http://localhost:5000/scan?ip=8.8.8.8&include_reports=1"
curl -X POST http://localhost:5000/scan \
-H "Content-Type: application/json" \
-H "X-AbuseIPDB-Key: your_key" \
-d '{"ip":"8.8.8.8","max_age":90,"include_reports":true}'
{
"success": true,
"meta": { "api": "IP Reputation Checker", "version": "v0.0.2", "endpoint": "/scan", "latency_ms": 241.1, "key_source": "server" },
"data": {
"input": "8.8.8.8",
"cached": false,
"analysis": {
"ip": "8.8.8.8",
"risk_score": 0,
"risk_level": "low",
"category": "Residential ISP",
"is_whitelisted": false,
"country_code": "US",
"isp": "Google LLC",
"is_public": true,
"ip_version": 4,
"usage_type": "Fixed Line ISP",
"domain": "google.com",
"is_tor": false,
"num_distinct_users": 5,
"total_reports": 2,
"last_reported_at": "2026-08-01T00:00:00Z",
"reports": [
{
"reported_at": "2026-08-01T00:00:00Z",
"comment": "DDoS bot",
"categories": [4],
"reporter_id": 123,
"reporter_country_code": "US",
"reporter_country_name": "United States"
}
],
"checked_at": "2026-08-27T21:30:00Z"
}
}
}
data.analysis fields:
| Field | Description |
|---|---|
ip | The scanned address |
risk_score | AbuseIPDB abuse confidence score (0–100) |
risk_level | low (< 40) / medium (40–74) / high (≥ 75) |
category | Human label: Clean, Suspicious, Malicious, Proxy/VPN, Hosting Service, Crawler/Bot, Mobile ISP, Residential ISP, Institutional Network |
is_whitelisted | Whether AbuseIPDB whitelists the address |
country_code | ISO-3166 alpha-2 country code |
isp | Internet service provider |
is_public | Whether the address is public |
ip_version | 4 or 6 |
usage_type | Raw AbuseIPDB usage type |
domain | Reverse-mapped domain, if any |
is_tor | Whether the address is a known Tor exit node |
num_distinct_users | Distinct reporters count |
total_reports | Total abuse reports in the look-back window |
last_reported_at | Timestamp of the most recent report |
reports | Array of report objects (only when include_reports=1) |
geo | Geolocation object (only when geo=1) |
checked_at | When the data was fetched |
Source contract imported from ip reputation checker/routes/scan.py. Handler: scan. Reference: docs/api-reference.md.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
max_age | body | integer | No | Look-back window in days (1–365) for AbuseIPDB |
force_refresh | body | boolean | No | Bypass the cache and hit AbuseIPDB live |
include_reports | body | boolean | No | Include the full abuse report list |
geo | body | boolean | No | Attach geolocation/ASN data to the analysis |
ip | body | string | Yes | IPv4 or IPv6 address to check against AbuseIPDB. |
X-AbuseIPDB-Key | header | string | No | Optional AbuseIPDB API key for BYOK; otherwise the configured server key is used. |
curl -X POST https://api.dakidarts.com/ip-reputation-checker/scan -H 'X-API-Key: dk_live_...' -H 'Accept: application/json' -H 'X-AbuseIPDB-Key: YOUR_X_ABUSEIPDB_KEY' -H 'Content-Type: application/json' -d '{"max_age": 90, "force_refresh": false, "include_reports": false, "geo": false, "ip": "8.8.8.8"}'
/scan/me
Scan Me
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Analyze the caller's own IP address — no parameters needed.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/scan/meAnalyze the caller's own IP address — no parameters needed.
Methods: GET, POST
Parameters: none
Example Request (GET):
GET /scan/me
Example Response: same shape as /scan → data.analysis.
Source contract imported from ip reputation checker/routes/scan.py. Handler: scan_me. Reference: RAPID_README.md.
curl -X GET https://api.dakidarts.com/ip-reputation-checker/scan/me -H 'X-API-Key: dk_live_...' -H 'Accept: application/json'
/scan/me
Scan Me
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Analyze the caller's own IP address — no parameters needed.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/scan/meAnalyze the caller's own IP address — no parameters needed.
Methods: GET, POST
Parameters: none
Example Request (GET):
GET /scan/me
Example Response: same shape as /scan → data.analysis.
Source contract imported from ip reputation checker/routes/scan.py. Handler: scan_me. Reference: RAPID_README.md.
curl -X POST https://api.dakidarts.com/ip-reputation-checker/scan/me -H 'X-API-Key: dk_live_...' -H 'Accept: application/json'
Ipinfo endpoints sourced from the IP Reputation Checker API implementation.
/ipinfo
Ipinfo
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Get rich geolocation and network intel for an IP: continent, country, region, city, coordinates, flag, organization, ISP, ASN, and timezone.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/ipinfoGet rich geolocation and network intel for an IP: continent, country, region, city, coordinates, flag, organization, ISP, ASN, and timezone.
Methods: GET, POST
Parameters:
ip *(string, required)* → The IPv4/IPv6 address to look up (e.g. 8.8.8.8)Example Request (GET):
GET /ipinfo?ip=8.8.8.8
Example Request (POST):
POST /ipinfo
{
"ip": "8.8.8.8"
}
Example Response:
{
"success": true,
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/ipinfo",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 312.7
},
"data": {
"input": "8.8.8.8",
"cached": true,
"geo": {
"ip": "8.8.8.8",
"type": "IPv4",
"continent": "North America",
"country": "United States",
"country_code": "US",
"region": "California",
"city": "Mountain View",
"latitude": 37.4056,
"longitude": -122.0775,
"flag_emoji": "🇺🇸",
"org": "Google LLC",
"isp": "Google LLC",
"domain": "google.com",
"asn": 15169,
"timezone": "America/Los_Angeles"
}
}
}
Errors:
400 → Missing or invalid IP400 → geo_unavailable for private/reserved addressesSource contract imported from ip reputation checker/routes/ipinfo.py. Handler: ipinfo. Reference: RAPID_README.md.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
ip | query | string | Yes | IPv4 or IPv6 address to enrich with geolocation and ASN data. |
curl -X GET 'https://api.dakidarts.com/ip-reputation-checker/ipinfo?ip=8.8.8.8' -H 'X-API-Key: dk_live_...' -H 'Accept: application/json'
/ipinfo
Ipinfo
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Get rich geolocation and network intel for an IP: continent, country, region, city, coordinates, flag, organization, ISP, ASN, and timezone.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/ipinfoGet rich geolocation and network intel for an IP: continent, country, region, city, coordinates, flag, organization, ISP, ASN, and timezone.
Methods: GET, POST
Parameters:
ip *(string, required)* → The IPv4/IPv6 address to look up (e.g. 8.8.8.8)Example Request (GET):
GET /ipinfo?ip=8.8.8.8
Example Request (POST):
POST /ipinfo
{
"ip": "8.8.8.8"
}
Example Response:
{
"success": true,
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/ipinfo",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 312.7
},
"data": {
"input": "8.8.8.8",
"cached": true,
"geo": {
"ip": "8.8.8.8",
"type": "IPv4",
"continent": "North America",
"country": "United States",
"country_code": "US",
"region": "California",
"city": "Mountain View",
"latitude": 37.4056,
"longitude": -122.0775,
"flag_emoji": "🇺🇸",
"org": "Google LLC",
"isp": "Google LLC",
"domain": "google.com",
"asn": 15169,
"timezone": "America/Los_Angeles"
}
}
}
Errors:
400 → Missing or invalid IP400 → geo_unavailable for private/reserved addressesSource contract imported from ip reputation checker/routes/ipinfo.py. Handler: ipinfo. Reference: RAPID_README.md.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
ip | body | string | Yes | IPv4 or IPv6 address to enrich with geolocation and ASN data. |
{
"data": {
"geo": {
"ip": "8.8.8.8",
"asn": 15169,
"isp": "Google LLC",
"org": "Google LLC",
"city": "Mountain View",
"type": "IPv4",
"domain": "google.com",
"region": "California",
"country": "United States",
"latitude": 37.4056,
"timezone": "America/Los_Angeles",
"continent": "North America",
"longitude": -122.0775,
"flag_emoji": "\ud83c\uddfa\ud83c\uddf8",
"country_code": "US"
},
"input": "8.8.8.8",
"cached": true
},
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/ipinfo",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 312.7
},
"success": true
}curl -X POST https://api.dakidarts.com/ip-reputation-checker/ipinfo -H 'X-API-Key: dk_live_...' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"ip": "8.8.8.8"}'
Operations endpoints sourced from the IP Reputation Checker API implementation.
/status
Status
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Check service health, API version, and uptime.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/statusCheck service health, API version, and uptime.
Methods: GET, POST
Parameters: none
Example Request (GET):
GET /status
Example Response:
{
"success": true,
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/status",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 1.2
},
"data": {
"status": "online",
"version": "v0.0.2",
"uptime_seconds": 86400,
"uptime_human": "1d 0h 0m",
"database": "ok"
}
}
Source contract imported from ip reputation checker/routes/meta.py. Handler: status. Reference: RAPID_README.md.
{
"data": {
"status": "online",
"version": "v0.0.2",
"database": "ok",
"uptime_human": "1d 0h 0m",
"uptime_seconds": 86400
},
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/status",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 1.2
},
"success": true
}curl -X GET https://api.dakidarts.com/ip-reputation-checker/status -H 'X-API-Key: dk_live_...' -H 'Accept: application/json'
/status
Status
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Check service health, API version, and uptime.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/statusCheck service health, API version, and uptime.
Methods: GET, POST
Parameters: none
Example Request (GET):
GET /status
Example Response:
{
"success": true,
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/status",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 1.2
},
"data": {
"status": "online",
"version": "v0.0.2",
"uptime_seconds": 86400,
"uptime_human": "1d 0h 0m",
"database": "ok"
}
}
Source contract imported from ip reputation checker/routes/meta.py. Handler: status. Reference: RAPID_README.md.
curl -X POST https://api.dakidarts.com/ip-reputation-checker/status -H 'X-API-Key: dk_live_...' -H 'Accept: application/json'
Reports endpoints sourced from the IP Reputation Checker API implementation.
/reports
Reports
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Fetch the complete abuse report history for an IP, including report date, comment, abuse categories, and reporter details.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/reportsFetch the complete abuse report history for an IP, including report date, comment, abuse categories, and reporter details.
Methods: GET, POST
Parameters:
ip *(string, required)* → The IPv4/IPv6 address (e.g. 118.25.6.39)max_age *(int, optional, default 90)* → Look-back window in days (1–365)X-AbuseIPDB-Key *(header, optional)* → Your own AbuseIPDB key (BYOK)Example Request (GET):
GET /reports?ip=118.25.6.39&max_age=90
Example Request (POST):
POST /reports
{
"ip": "118.25.6.39",
"max_age": 90
}
Example Response:
{
"success": true,
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/reports",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 410.9
},
"data": {
"input": "118.25.6.39",
"total_reports": 48,
"reports": [
{
"reported_at": "2023-07-10T20:55:14+00:00",
"comment": "SSH brute force attempt",
"categories": [18, 22],
"reporter_id": 1,
"reporter_country_code": "US",
"reporter_country_name": "United States"
}
]
}
}
Errors:
400 → Missing or invalid IPSource contract imported from ip reputation checker/routes/reports.py. Handler: reports. Reference: RAPID_README.md.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
ip | query | string | Yes | IPv4 or IPv6 address whose abuse-report history is requested. |
max_age | query | integer | No | AbuseIPDB look-back window in days (1–365). |
X-AbuseIPDB-Key | header | string | No | Optional AbuseIPDB API key for BYOK; otherwise the configured server key is used. |
curl -X GET 'https://api.dakidarts.com/ip-reputation-checker/reports?ip=8.8.8.8&max_age=90' -H 'X-API-Key: dk_live_...' -H 'Accept: application/json' -H 'X-AbuseIPDB-Key: YOUR_X_ABUSEIPDB_KEY'
/reports
Reports
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Fetch the complete abuse report history for an IP, including report date, comment, abuse categories, and reporter details.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/reportsFetch the complete abuse report history for an IP, including report date, comment, abuse categories, and reporter details.
Methods: GET, POST
Parameters:
ip *(string, required)* → The IPv4/IPv6 address (e.g. 118.25.6.39)max_age *(int, optional, default 90)* → Look-back window in days (1–365)X-AbuseIPDB-Key *(header, optional)* → Your own AbuseIPDB key (BYOK)Example Request (GET):
GET /reports?ip=118.25.6.39&max_age=90
Example Request (POST):
POST /reports
{
"ip": "118.25.6.39",
"max_age": 90
}
Example Response:
{
"success": true,
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/reports",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 410.9
},
"data": {
"input": "118.25.6.39",
"total_reports": 48,
"reports": [
{
"reported_at": "2023-07-10T20:55:14+00:00",
"comment": "SSH brute force attempt",
"categories": [18, 22],
"reporter_id": 1,
"reporter_country_code": "US",
"reporter_country_name": "United States"
}
]
}
}
Errors:
400 → Missing or invalid IPSource contract imported from ip reputation checker/routes/reports.py. Handler: reports. Reference: RAPID_README.md.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
ip | body | string | Yes | IPv4 or IPv6 address whose abuse-report history is requested. |
max_age | body | integer | No | AbuseIPDB look-back window in days (1–365). |
X-AbuseIPDB-Key | header | string | No | Optional AbuseIPDB API key for BYOK; otherwise the configured server key is used. |
{
"data": {
"input": "118.25.6.39",
"reports": [
{
"comment": "SSH brute force attempt",
"categories": [
18,
22
],
"reported_at": "2023-07-10T20:55:14+00:00",
"reporter_id": 1,
"reporter_country_code": "US",
"reporter_country_name": "United States"
}
],
"total_reports": 48
},
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/reports",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 410.9
},
"success": true
}curl -X POST https://api.dakidarts.com/ip-reputation-checker/reports -H 'X-API-Key: dk_live_...' -H 'Accept: application/json' -H 'X-AbuseIPDB-Key: YOUR_X_ABUSEIPDB_KEY' -H 'Content-Type: application/json' -d '{"ip": "8.8.8.8", "max_age": 90}'
Report endpoints sourced from the IP Reputation Checker API implementation.
/report
Report
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Submit an abuse report for an IP to AbuseIPDB. Requires a key with reporting permission (your own via BYOK, or the server key).
Snapshot from
docs/api-reference.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
GET/POST /reportsFetches the full abuse reports for an IP (live AbuseIPDB query).
Parameters: ip (required), max_age (default 90)
curl "http://localhost:5000/reports?ip=8.8.8.8"
{
"success": true,
"meta": { "...": "..." },
"data": {
"input": "8.8.8.8",
"total_reports": 2,
"reports": [
{
"reported_at": "2026-08-01T00:00:00Z",
"comment": "DDoS bot",
"categories": [4],
"reporter_id": 123,
"reporter_country_code": "US",
"reporter_country_name": "United States"
}
]
}
}
Source contract imported from ip reputation checker/routes/reports.py. Handler: report. Reference: docs/api-reference.md.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
ip | body | string | Yes | **Required.** Address to report |
categories | body | array | Yes | One to five integer AbuseIPDB category IDs. |
comment | body | string | No | Optional comment describing the abuse |
X-AbuseIPDB-Key | header | string | No | Optional AbuseIPDB API key for BYOK; otherwise the configured server key is used. |
curl -X POST https://api.dakidarts.com/ip-reputation-checker/report -H 'X-API-Key: dk_live_...' -H 'Accept: application/json' -H 'X-AbuseIPDB-Key: YOUR_X_ABUSEIPDB_KEY' -H 'Content-Type: application/json' -d '{"ip": "example", "categories": "example", "comment": "example"}'
Categories endpoints sourced from the IP Reputation Checker API implementation.
/categories
Categories
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Get the full AbuseIPDB abuse category reference (IDs 1–23) with names and descriptions. Use these IDs with the `/report` endpoint and to interpret `reports[].categories`.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/categoriesGet the full AbuseIPDB abuse category reference (IDs 1–23) with names and descriptions. Use these IDs with the /report endpoint and to interpret reports[].categories.
Methods: GET
Parameters: none
Example Request (GET):
GET /categories
Example Response:
{
"success": true,
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/categories",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 5.0
},
"data": {
"count": 23,
"categories": [
{ "id": 1, "name": "DNS Compromise", "description": "Abuse was involved in DNS cache poisoning, DNS DDoS, or DNS hijacking." },
{ "id": 4, "name": "DDoS Attack", "description": "Abuse was involved in distributed denial of service attacks." },
{ "id": 7, "name": "Phishing", "description": "Abuse was involved in phishing." }
]
}
}
Source contract imported from ip reputation checker/routes/reports.py. Handler: categories. Reference: RAPID_README.md.
{
"data": {
"count": 23,
"categories": [
{
"id": 1,
"name": "DNS Compromise",
"description": "Abuse was involved in DNS cache poisoning, DNS DDoS, or DNS hijacking."
},
{
"id": 4,
"name": "DDoS Attack",
"description": "Abuse was involved in distributed denial of service attacks."
},
{
"id": 7,
"name": "Phishing",
"description": "Abuse was involved in phishing."
}
]
},
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/categories",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 5.0
},
"success": true
}curl -X GET https://api.dakidarts.com/ip-reputation-checker/categories -H 'X-API-Key: dk_live_...' -H 'Accept: application/json'
Batch operations endpoints sourced from the IP Reputation Checker API implementation.
/scan/batch
Scan Batch
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Scan up to 20 IP addresses in a single request. Each IP is evaluated independently — one bad address won't fail the whole batch.
Snapshot from
docs/api-reference.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
POST /scan/batchScans up to 20 IPs in a single call. Each IP is checked independently and results are returned per IP, so one bad address does not fail the whole batch.
Body (JSON):
| Param | Type | Default | Description |
|---|---|---|---|
ips | string[] | — | Required. List of IPs (max 20) |
max_age | int | 90 | Look-back window in days |
force_refresh | bool | false | Bypass cache for all IPs |
include_reports | bool | false | Include reports per IP |
geo | bool | false | Include geolocation per IP |
curl -X POST http://localhost:5000/scan/batch \
-H "Content-Type: application/json" \
-d '{"ips":["8.8.8.8","1.1.1.1","not-an-ip"]}'
{
"success": true,
"meta": { "api": "IP Reputation Checker", "version": "v0.0.2", "endpoint": "/scan/batch", "latency_ms": 1200.5 },
"data": {
"scanned": 3,
"from_cache": 1,
"errors": 1,
"results": [
{ "input": "8.8.8.8", "cached": true, "analysis": { "...": "..." } },
{ "input": "1.1.1.1", "cached": false, "analysis": { "...": "..." } },
{ "input": "not-an-ip", "error": { "code": "invalid_ip", "message": "Invalid IP address" } }
]
}
}
Source contract imported from ip reputation checker/routes/scan.py. Handler: scan_batch. Reference: docs/api-reference.md.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
ips | body | array | No | **Required.** List of IPs (max 20) |
max_age | body | integer | No | Look-back window in days |
force_refresh | body | boolean | No | Bypass cache for all IPs |
include_reports | body | boolean | No | Include reports per IP |
geo | body | boolean | No | Include geolocation per IP |
curl -X POST https://api.dakidarts.com/ip-reputation-checker/scan/batch -H 'X-API-Key: dk_live_...' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"ips": "example", "max_age": 90, "force_refresh": false, "include_reports": false, "geo": false}'
/scan/bulk
Scan Bulk
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Scan a whole CIDR block (e.g. `8.8.8.0/24`) or a list of up to 40 IPs. Provide exactly one of `network` or `ips`.
Snapshot from
RAPID_README.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
/scan/bulkScan a whole CIDR block (e.g. 8.8.8.0/24) or a list of up to 40 IPs. Provide exactly one of network or ips.
Methods: POST
Parameters (JSON body):
network *(string, optional)* → CIDR block to check (e.g. 8.8.8.0/24)ips *(array, optional)* → List of IPs to scan (max 40)max_age *(int, optional, default 90)* → Look-back window in days (1–365)X-AbuseIPDB-Key *(header, optional)* → Your own AbuseIPDB key (BYOK)Example Request (POST — CIDR):
POST /scan/bulk
{
"network": "8.8.8.0/24",
"max_age": 90
}
Example Response:
{
"success": true,
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/scan/bulk",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 800.2
},
"data": {
"network": "8.8.8.0/24",
"min_address": "8.8.8.0",
"max_address": "8.8.8.255",
"num_possible_hosts": 256,
"num_distinct_users": 3,
"total_reports": 7,
"reported_count": 2,
"reported_addresses": [
{
"ip": "8.8.8.2",
"num_reports": 5,
"abuse_confidence_score": 100,
"country_code": "US",
"most_recent_report": "2026-08-10T12:00:00Z",
"last_reported_at": "2026-08-10T12:00:00Z"
}
]
}
}
Example Request (POST — IP list):
POST /scan/bulk
{
"ips": ["118.25.6.39", "8.8.8.8"],
"max_age": 90
}
Errors:
400 → Missing network and ips, or invalid network413 → More than 40 IPs provided402 → Block search beyond 30 days requires an AbuseIPDB subscriptionSource contract imported from ip reputation checker/routes/scan.py. Handler: scan_bulk. Reference: RAPID_README.md.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
network | body | string | No | CIDR network to check (for example, `8.8.8.0/24`). Provide this or `ips`, not both. |
ips | body | array | No | List of IPv4/IPv6 addresses (maximum 40). Provide this or `network`, not both. |
max_age | body | integer | No | AbuseIPDB look-back window in days (1–365). |
force_refresh | body | boolean | No | When true, bypass cached results and query the provider. |
X-AbuseIPDB-Key | header | string | No | Optional AbuseIPDB API key for BYOK; otherwise the configured server key is used. |
{
"data": {
"network": "8.8.8.0/24",
"max_address": "8.8.8.255",
"min_address": "8.8.8.0",
"total_reports": 7,
"reported_count": 2,
"num_distinct_users": 3,
"num_possible_hosts": 256,
"reported_addresses": [
{
"ip": "8.8.8.2",
"num_reports": 5,
"country_code": "US",
"last_reported_at": "2026-08-10T12:00:00Z",
"most_recent_report": "2026-08-10T12:00:00Z",
"abuse_confidence_score": 100
}
]
},
"meta": {
"api": "IP Reputation Checker",
"version": "v0.0.2",
"endpoint": "/scan/bulk",
"timestamp": "2026-08-28T10:00:00Z",
"latency_ms": 800.2
},
"success": true
}curl -X POST https://api.dakidarts.com/ip-reputation-checker/scan/bulk -H 'X-API-Key: dk_live_...' -H 'Accept: application/json' -H 'X-AbuseIPDB-Key: YOUR_X_ABUSEIPDB_KEY' -H 'Content-Type: application/json' -d '{"network": "example", "ips": "example", "max_age": "example", "force_refresh": false}'
Stats endpoints sourced from the IP Reputation Checker API implementation.
/stats
Stats
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Usage analytics derived from the scan log (last 90 days by default).
Snapshot from
docs/api-reference.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
GET /statsUsage analytics derived from the scan log (last 90 days by default).
curl http://localhost:5000/stats
{
"success": true,
"meta": { "...": "..." },
"data": {
"total_scans": 1042,
"cache_hits": 712,
"cache_misses": 330,
"hit_rate_pct": 68.33,
"scans_last_24h": 88,
"unique_ips_scanned": 402,
"top_ips": [ { "ip": "8.8.8.8", "scans": 120, "max_risk": 0, "category": "Residential ISP" } ],
"category_distribution": [ { "category": "Clean", "count": 900 }, { "category": "Malicious", "count": 88 } ]
}
}
Source contract imported from ip reputation checker/routes/stats.py. Handler: stats. Reference: docs/api-reference.md.
curl -X GET https://api.dakidarts.com/ip-reputation-checker/stats -H 'X-API-Key: dk_live_...' -H 'Accept: application/json'
Cache endpoints sourced from the IP Reputation Checker API implementation.
/cache
Cache
SOURCE CONTRACT — UPSTREAM NEEDED
$0.0050 / call / 120 rpm
Upstream needed
Cache statistics (reputation + geo caches, TTLs, most-requested entries).
Snapshot from
docs/api-reference.mdfor source API versionv0.0.2. This is source documentation, not evidence that an upstream is deployed.
GET /cacheCache statistics (reputation + geo caches, TTLs, most-requested entries).
curl http://localhost:5000/cache
{
"success": true,
"meta": { "...": "..." },
"data": {
"cache_entries": 402,
"geo_entries": 150,
"expired_entries": 3,
"total_cache_hits_served": 712,
"cache_ttl_hours": 24,
"geo_ttl_hours": 168,
"most_requested": [ { "ip": "8.8.8.8", "hits": 58, "risk_score": 0, "category": "Residential ISP" } ]
}
}
Source contract imported from ip reputation checker/routes/stats.py. Handler: cache. Reference: docs/api-reference.md.
curl -X GET https://api.dakidarts.com/ip-reputation-checker/cache -H 'X-API-Key: dk_live_...' -H 'Accept: application/json'
No endpoints match that search. Clear the search to see all routes.
Edit a JSON request to validate its syntax and preview the published sample response. This stays in your browser; it never calls the live API or uses credits.
The preview checks JSON syntax and shows the saved example response; it does not execute request values.
These are integration templates, not runnable sample calls. Configure an endpoint upstream in API Studio, then replace the placeholder path. Saved samples stay preview-only.
# Replace with a connected GET route and include any required parameters.
curl -X GET "https://api.dakidarts.com/ip-reputation-checker/v1/your-connected-endpoint" \
-H "X-API-Key: dk_live_..." \
-H "Accept: application/json"
# Replace with a connected GET route and include any required parameters.
import requests
headers = {"X-API-Key": "dk_live_..."}
response = requests.get("https://api.dakidarts.com/ip-reputation-checker/v1/your-connected-endpoint", headers=headers)
print(response.json())
// Replace with a connected GET route and include any required parameters.
const res = await fetch("https://api.dakidarts.com/ip-reputation-checker/v1/your-connected-endpoint", {
headers: { "X-API-Key": "dk_live_..." }
});
const data = await res.json();
console.log(data);
<?php
// Replace with a connected GET route and include any required parameters.
$ch = curl_init("https://api.dakidarts.com/ip-reputation-checker/v1/your-connected-endpoint");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["X-API-Key: dk_live_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);