API
Verify a target
Prove that a host is yours to unlock 30s/60s check intervals, HTTP GET paths, custom ports, TCP connect, and ICMP ping.
Ask for a challenge
POST/v1/targets/verify
{ "hostname": "example.com", "method": "dns_txt" }methodisdns_txtorhttp_well_known(http). The response containschallenge_id,txt_recordandtxt_value,http_path, andexpires_at(valid for 24 hours).Publish the proof
For
dns_txt, publish a DNS TXT record attxt_recordwith valuetxt_value. For HTTP, servetokenas plain text athttp_path._hopbits-challenge.example.com. TXT "hopbits-verify=<token>"Confirm
POST
challenge_idto/v1/targets/verify. Hopbits checks the proof and records the verified domain and its proven IP addresses.{ "challenge_id": "<challenge id>" }
List, re-verify or delete targets
GET/v1/targets
Lists your verified targets (id, hostname, proven IP addresses, verification method, and expiry timestamps).
POST/v1/targets/{id}/verify
Re-verifies an existing target ({id} accepts the target UUID id, normalized hostname, or challenge_id). Answers 200 if the live DNS TXT or .well-known proof matches, or 201 with a fresh challenge if re-publication is needed.
DELETE/v1/targets/{id}
Removes a verified target owned by your account ({id} accepts the target UUID id or normalized hostname). Answers 204 (404 if not owned).
Opt a domain or IP out of probing
Site and network owners can request removal without an account by emailing [email protected], or opt out immediately through the API with a free Hopbits account and Bearer API key:
POST/v1/optout
Issues a 24-hour DNS TXT or HTTP .well-known opt-out challenge for a domain, IP literal, or CIDR prefix (201 Created).
{
"entry": "example.com",
"domain": "example.com",
"method": "dns_txt",
"consented_to_list": false
}
{
"challenge_id": "opt_8c4e12a9f0014d11",
"entry": "example.com",
"domain": "example.com",
"method": "dns_txt",
"token": "9d7a3f...",
"txt_record": "_hopbits-optout.example.com",
"txt_value": "hopbits-optout=9d7a3f...",
"http_path": "/.well-known/hopbits-optout.txt",
"consented_to_list": false,
"expires_at": "2026-11-15T01:00:00Z"
}
POST/v1/optout/verify
Verifies the published DNS TXT or HTTP .well-known proof for challenge_id and immediately adds entry to the global coordinator and agent deny-list (200 OK).
// Request
{ "challenge_id": "opt_8c4e12a9f0014d11" }
// Response
{
"ok": true,
"entry": "example.com",
"source": "self_service",
"consented_to_list": false,
"created_at": "2026-11-14T01:05:00Z"
}