HF PanelDocsv1.0.0

Abuse desk and DNSSEC API

Read and add abuse complaints, set their status, add notes, and read or switch DNSSEC of a zone with the token API.

The token API reaches the abuse desk and DNSSEC of a zone. Send the token as Authorization: Bearer hf_… to https://api.yourdomain.com:2087/v1.

Abuse complaints

Administrator tokens see every complaint. Reseller tokens see their own customers' complaints while the administrator lets resellers see complaints (otherwise 403). Customer tokens get 403.

Method and path What it does
GET /abuse Complaints, newest first. ?status=new, waiting, resolved or all (default: new and waiting), ?q= text in the subject, domain, IP, account or reporter.
POST /abuse Add a complaint (administrator tokens, "Read & change"). It is read and linked to an account like an email. Answers 201.
GET /abuse/{id} One complaint with its text and timeline.
POST /abuse/{id}/status Set the status: {"status": "resolved"} (new, waiting or resolved).
POST /abuse/{id}/notes Add a staff note: {"text": "Customer removed the page."}.

The fields of POST /abuse:

Field What it is
body the complaint's text (required)
kind spam, phishing, malware, copyright, attack or other (default: worked out)
subject, reporter_name, reporter_email a short line, who reported it and where to answer
ip, domain, url, when what it is about, when the reporter knows (when in ISO 8601)
bash
curl -s -X POST https://api.yourdomain.com:2087/v1/abuse \
  -H "Authorization: Bearer hf_…" -H "Content-Type: application/json" \
  -d '{"kind":"phishing","url":"https://login.sarahbakes.co.uk/bank","body":"Fake bank login page.","reporter_email":"abuse@isp.example"}'

A complaint in an answer has id, status, kind, source, subject, ip, domain, url, occurred_at, account (the linked account's username, or empty), reporter_name, reporter_email, linked_by, created_at and updated_at.

DNSSEC of a zone

Method and path What it does
GET /accounts/{username}/dns/{zone}/dnssec The status: enabled, status (off, waiting, signed or unsupported), bind (version), keys, ds (the DS records to add at the registrar: key_tag, algorithm, digest_type, digest, record), dnskey, key_state (BIND's report on the keys and their rollover), registrar_managed and registrar_in_sync.
POST or PUT /accounts/{username}/dns/{zone}/dnssec Turn signing on or off: {"enabled": true}. Runs the DNS zone editor's own action, so the activity log and the registrar's DS records are handled the same way.

When the domain was bought through the panel's domain sales with a provider that takes DS records, registrar_managed is true and the panel sends the DS records itself (registrar_in_sync tells whether the registrar has the current ones).