API documentation
Get Domain Abuse Report
Get the current abuse status of a domain (complaints, hold lifecycle, scenario classification). Returns a machine-readable summary suitable for resellers monitoring domains on behalf of their customers.
Content-Type
application-json
category
abuse
action
get_abuse_report
Request parameters
| Parameter Name | Type | Describe | Example |
|---|---|---|---|
| domain | String (3-60) | Domain name | example.com |
Response parameters
| Parameter Name | Type | Describe |
|---|---|---|
| domain | String | Domain name |
| scenario | Object | Current abuse scenario classification (one of six domain-level states) |
| scenario.status | String | Status phrase. One of: "Normal", "Under Review", "Pending ClientHold", "ClientHold", "Closed", "ServerHold" |
| scenario.impact | String | Impact phrase paired with the status, e.g. "At risk of restriction", "Currently restricted", "No restriction" |
| scenario.action | String | Recommended next-step phrase for the domain owner |
| hold | Object | Hold lifecycle timeline |
| hold.state | String | Current hold state: none / pending / applied |
| hold.pending_since | Datetime | When the domain entered the pending-hold queue (null when no hold record exists) |
| hold.scheduled_at | Datetime | Planned clientHold execution time. If the case is not resolved by this time, clientHold will be applied automatically. |
| hold.applied_at | Datetime | When clientHold was actually applied. Null while the hold is still pending. |
| complaint | Object | Aggregated complaint statistics for this domain |
| complaint.case_count | Integer | Number of distinct abuse cases involving this domain (open + closed) |
| complaint.earliest_at | Datetime | Timestamp of the earliest complaint received for this domain |
| complaint.latest_at | Datetime | Timestamp of the most recent complaint received for this domain |
| complaint.categories | String[] | Distinct abuse categories across all related cases, e.g. ["Phishing", "Malware"] |
| complaint.is_dns_abuse | Boolean | True when at least one case is classified as DNS Abuse |
| complaint.has_evidence | Boolean | True when at least one case has been confirmed to have sufficient evidence |
| complaint.reported_urls | String[] | URLs extracted from complaint emails for this domain (deduplicated across all related abuse records). Empty array when the scenario is Normal, ServerHold, or an ICANN-directed ClientHold. |
| details_url_hint | String | English hint guiding the customer to the console path that shows full case details and the AI-generated complaint summary |
Request Example
{
curl https://api.nicenic.net/v2/?category=abuse&action=get_abuse_report&domain={domain}
-H "Authorization: username:api_secret"
-H "Content-Type: application/json"
}
Return result
0 OK
Successful response
{
"code": 0,
"msg" : "success",
"data" : {
"domain": "example.com",
"scenario": {
"status": "Pending ClientHold",
"impact": "At risk of restriction",
"action": "Submit supporting materials now"
},
"hold": {
"state": "pending",
"pending_since": "2026-04-20 10:30:00",
"scheduled_at": "2026-04-22 10:30:00",
"applied_at": null
},
"complaint": {
"case_count": 3,
"earliest_at": "2026-03-12 09:14:00",
"latest_at": "2026-04-22 18:02:00",
"categories": ["Phishing", "Malware"],
"is_dns_abuse": true,
"has_evidence": true,
"reported_urls": [
"http://example.com/promo/win-iphone",
"http://example.com/dl/installer.exe"
]
},
"details_url_hint": "For full case details and the AI-generated complaint summary, sign in to nicenic.com and go to My Account > My Products > Domain Name > Health Check."
}
}
400 Bad Request
{
"code": 400,
"msg" : "Request parameter error",
}






