acme-login.com found by a scan of acme.com.
The flow has five steps. You authorize takedowns once with a signed power of attorney. Then, for each domain, you create a draft, wait while its evidence is prepared, send it, and track the replies. The takedown endpoints sit under the SpoofGuard tag in the API reference.
Availability: Domain Takedowns. You also need Domain Monitoring, because a takedown starts from a domain your scan found.
Cost: 1 unit of your yearly Domain Takedowns allowance for each takedown you send. Drafts, previews, edits, retries, deletes and power-of-attorney calls use no units. A send that returns any status other than 2xx is refunded. The allowance runs per contract year: it resets at 00:00 UTC on each anniversary of your license’s start date. Each call also counts toward the per-second rate limit and, when it succeeds, uses one unit of your monthly API Calls allowance.
Without Domain Takedowns, or when your license is not active, every endpoint on this page returns 403:
send returns 429 and nothing is sent:
limit is your organization’s takedowns for the year. This 429 has no Retry-After header, and retries fail until the allowance resets. Plans and quotas explains allowances. No endpoint on this page holds a capacity slot, so none returns the capacity 409.
Two other kinds of 429 can come back from any endpoint on this page:
"message": "Rate limit exceeded"is the per-second rate limit or your API Calls allowance. See Rate limits."detail": "Request was throttled. Expected available in 12 seconds."is the domain monitoring service’s own limit of 180 requests a minute. Every API key and dashboard user of your organization shares it. Wait the seconds the message gives. The response has noRetry-Afterheader.
How a takedown moves
Preparation captures a screenshot of your website and one of the look-alike, and looks up the abuse contacts of each authority you chose. A draft becomes
ready only when both screenshots exist and every chosen authority has at least one abuse email address.
Authorize takedowns
A takedown acts on your organization’s behalf, so the authorities receive a signed power of attorney with each report. Upload one before your first draft. Every later takedown can reuse it.1
Download the template
spoofguard_powers_of_attorney_template returns the blank template as an ODT file named blank_takedown_power.odt.2
Fill it in and sign it
Complete the template for your organization and sign it.
3
Upload the signed file
spoofguard_powers_of_attorney_create takes multipart/form-data with name (up to 100 characters, unique within your organization) and signed_power_file (a PDF, ODT or DOCX file).201 with the file’s id, name, signed_power_file_link and timestamps. Keep the id: drafts take it as power_of_attorney_id.spoofguard_powers_of_attorney_update as multipart/form-data. Both upload calls refuse a JSON body with 415.
Create a draft
spoofguard_takedowns_create takes a JSON body:
201 with the draft. This shortened example shows the fields you act on:
Set
reply_email_recipient. That address receives an email when the draft’s preparation finishes, when each request is sent, when the website or domain is taken down, and when the takedown completes. Without it, the emails go to an internal address that no one reads. You cannot change it after the draft is created.400 with a details message:
registrarorhostingistrue.- The power of attorney and the scan exist in your organization.
- Every blacklist code is valid.
domainis one of the scan’s results.domainresolves to an IP address, and port 80 or 443 is open on it.- Your scanned domain,
acme.com, resolves to an IP address.
Wait for preparation
Pollspoofguard_takedowns_detail until preparation_status is ready or failed.
ready, review what will be sent:
original_screenshot_linkandmalicious_screenshot_link: the two screenshots attached to every report.authority_takedown_requests: one entry per chosen authority, withauthority_type(Domain RegistrarorHosting Provider),abuse_name,abuse_emailsandemail_preview_link, an image of the email.
Edit a draft
spoofguard_takedowns_update accepts multipart/form-data only. A JSON body returns 415. You can edit a draft that is ready or failed, but not one that is still queued or preparing, and not one already sent.
Retry a failed preparation
A draft fails when a screenshot cannot be captured, or when no abuse email address is found for an authority you chose. Fix the cause, then start the preparation again:1
Find what is missing
An empty
original_screenshot_link or malicious_screenshot_link is a missing screenshot. An entry in authority_takedown_requests with an empty abuse_emails list is a missing contact. So is an authority you chose, registrar or hosting set to true, that has no entry in authority_takedown_requests.2
Fix the draft
Upload the missing screenshot, or turn off the authority that has no contact. Both are edits.
3
Retry
Call
spoofguard_takedowns_retry_preparation. It returns 202 with an empty body, and the draft goes back to queued. Poll the draft again. Screenshots and contacts already stored are reused.409 when the draft cannot be retried yet:
failed draft at any time. A draft that has stayed queued or preparing for 15 minutes without changing can be retried too. A ready draft or a sent takedown cannot.
Send the takedown
spoofguard_takedowns_send takes no body and uses one unit of your yearly allowance.
200 with the takedown. status is In Progress once at least one report is sent. A status still at Draft means no report went out. Check status and logs in the response. A 200 uses the unit either way.
A send is refused, and its unit refunded, in two cases:
- The draft is not
ready:{"details": "The takedown draft preparation is not ready."} - It was already sent:
{"details": "The takedown request has already been sent to the authorities for this domain."}
Track progress
Read one takedown withspoofguard_takedowns_detail, or all of them with spoofguard_takedowns_list.
Takedowns also set the triage status of the domain in the scan’s results:
td_in_progress once sent, and td_completed when complete.
The list returns every takedown of your organization in one array, newest first. It takes these filters:
Leave out
date_sort: the default order is newest first.
Delete a takedown
spoofguard_takedowns_delete returns 204 and removes the takedown from your list. It does not withdraw reports already sent, and it does not return the allowance unit. The domain’s triage status in the scan returns to reviewed.
Errors
Errors from the API itself carrydetail. Errors from the domain monitoring service carry details, except its own 429, which carries detail. The per-second rate limit and the API Calls allowance carry message. Read the first of detail, details and message that the body contains. Every status is explained once in Handle API errors.