Start a blocklist check
const url = 'https://app.hostrepute.com/api/v1/blacklist/check';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"host":"example.net","data_source_group_uuid":"01a178db-d581-700d-9729-4f4abc8cee72","callback_url":"https://hooks.example.com/hostrepute/scans"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://app.hostrepute.com/api/v1/blacklist/check \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "host": "example.net", "data_source_group_uuid": "01a178db-d581-700d-9729-4f4abc8cee72", "callback_url": "https://hooks.example.com/hostrepute/scans" }'Start checking a domain or IP against the blocklists in a check profile. The response comes back straight away with the check’s uuid and status; poll GET /api/v1/blacklist/status/{scan_uuid} until is_completed is true or status is failed, or pass a callback_url to be told when it ends. The domain or IP doesn’t have to be one your team monitors.
Costs 1 credit. Needs the blacklist:check ability.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
The domain or IP address to check. A URL is accepted and its host name is used.
Example
example.netThe UUID of the check profile whose blocklists to use. Defaults to your team’s default check profile.
Example
01a178db-d581-700d-9729-4f4abc8cee72A public HTTPS URL that HostRepute sends a POST to when the check ends. The request carries the X-Webhook-Event (blacklist.scan.completed), X-Webhook-Timestamp and X-Webhook-Signature-V3 headers, signed with your team’s webhook secret. Read https://docs.hostrepute.com/developers/webhooks/
Example
https://hooks.example.com/hostrepute/scansResponses
Section titled “Responses”object
object
object
Example
{ "data": { "uuid": "01a178db-d833-70d2-8436-d39da22fcd8a", "host": "example.net", "status": "processing", "is_completed": false, "callback_status": null, "data_source_count": 4, "completed_source_count": 0, "listed_data_source_count": 0, "failed_data_source_count": 0, "progress_percent": 0, "error_message": null, "data_source_group": { "uuid": "01a178db-d581-700d-9729-4f4abc8cee72", "name": "Default", "slug": "default", "description": "All production domains", "is_default": true, "deliverability_checks_enabled": true, "deliverability_checks": [ "mx_health", "spf_record", "spf_strict", "spf_lookup_limit", "dmarc_record", "dmarc_strict" ], "created_at": "2026-07-14T09:12:44.000000Z", "updated_at": "2026-09-02T14:05:31.000000Z" }, "started_at": "2026-10-26T15:37:16.000000Z", "completed_at": null, "created_at": "2026-10-26T15:37:16.000000Z" }}Not enough credits
object
Example
{ "message": "Insufficient credits.", "required_credits": 1, "available_credits": 0}Invalid input
object
object
Example
{ "message": "The callback url must be a public HTTPS webhook URL.", "errors": { "callback_url": [ "The callback url must be a public HTTPS webhook URL." ] }}
