List takedowns
const url = 'https://app.nebty.de/core/api/takedowns/?category=website&resolution=DOMAIN_SUSPENDED&status=REQUESTED';const options = {method: 'GET', headers: {Authorization: '<Authorization>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://app.nebty.de/core/api/takedowns/?category=website&resolution=DOMAIN_SUSPENDED&status=REQUESTED' \ --header 'Authorization: <Authorization>'Returns the takedown cases the API key’s user can see: those they requested and those belonging to a brand they are a member of. Newest first.
Filters: brand (UUID), status, resolution, created_after (inclusive) and created_before (exclusive), both ISO 8601. Invalid values, and created_after not earlier than created_before, are rejected with 400.
Paginated: page and page_size (default 50). On this endpoint a page_size above 100 is rejected with 400 rather than reduced.
A takedown’s status is one of REQUESTED (not yet started), OPEN, IN_PROGRESS, PENDING_RESPONSE, CLOSED, FAILED or REJECTED. CLOSED alone does not mean the site was taken down; read resolution for the outcome. price and price_currency are the price per successful takedown (net, VAT on top) agreed when the takedown was ordered, or null and empty when none was agreed at order.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Filter takedowns for a specific brand ID
What the case is against: website, or token (a fake crypto token).
website- Websitetoken- Token
Created at or after this ISO 8601 timestamp (inclusive).
Created before this ISO 8601 timestamp (exclusive).
A page number within the paginated result set.
Items per page, 1–100; default 50. Keep this value unchanged while paging.
Exact outcome. CLOSED alone does not mean successful removal.
DOMAIN_SUSPENDED- Domain SuspendedCONTENT_REMOVED- Content RemovedSERVER_HOLD- Server HoldVOLUNTARY_TAKEDOWN- Voluntary TakedownUNRESOLVED- UnresolvedFALSE_POSITIVE- False PositiveTOKEN_LISTING_REMOVED- Agreed token listing removedTOKEN_TRADING_BLOCKED- Trading blocked on agreed platformTOKEN_WARNING_ADDED- Token warning added (partial mitigation)
REQUESTED- Pending reviewOPEN- OpenIN_PROGRESS- In ProgressPENDING_RESPONSE- Pending ResponseCLOSED- ClosedFAILED- FailedREJECTED- Rejected
Responses
Section titled “Responses”object
Serializer for takedown request details.
object
The target website URL for the takedown request
What the case is against. ‘token’ is a fake crypto token (smart contract); target_website then holds the contract’s block-explorer URL, and the domain autofill and post-close rescan skip the row. Only staff may set ‘token’.
website- Websitetoken- Token
Token only: the specific listing or trading platform covered by the customer’s order.
listing_removed- Remove the agreed token listingtrading_blocked- Block trading on the agreed platform
Token only: the removal or trading block agreed before work starts.
listing_removed- Remove the agreed token listingtrading_blocked- Block trading on the agreed platform
Server timestamp when the complete token order scope was first recorded. The scope is then immutable.
Optional comment from the requesting user
Brand associated with this takedown. All users with access to this brand can view the takedown.
Legacy free-text brand name (deprecated, use brand FK instead)
Current status of the takedown request
REQUESTED- Pending reviewOPEN- OpenIN_PROGRESS- In ProgressPENDING_RESPONSE- Pending ResponseCLOSED- ClosedFAILED- FailedREJECTED- Rejected
Timestamp when the takedown case was closed.
MEASURED- Measured at closureDERIVED_FROM_EVENT- Derived from status-change eventDERIVED_FROM_NOTE- Derived from last case note (±1 day)
How closed_at was arrived at: MEASURED (stamped at closure or entered by staff), DERIVED_FROM_EVENT (reconstructed from the status-change audit event, exact), DERIVED_FROM_NOTE (reconstructed from the last case note, +/-1 day), or blank when no closing date is known. Reports averaging resolution time should state how many inputs were reconstructed.
MEASURED- Measured at closureDERIVED_FROM_EVENT- Derived from status-change eventDERIVED_FROM_NOTE- Derived from last case note (±1 day)
DOMAIN_SUSPENDED- Domain SuspendedCONTENT_REMOVED- Content RemovedSERVER_HOLD- Server HoldVOLUNTARY_TAKEDOWN- Voluntary TakedownUNRESOLVED- UnresolvedFALSE_POSITIVE- False PositiveTOKEN_LISTING_REMOVED- Agreed token listing removedTOKEN_TRADING_BLOCKED- Trading blocked on agreed platformTOKEN_WARNING_ADDED- Token warning added (partial mitigation)
Outcome of the takedown case.
DOMAIN_SUSPENDED- Domain SuspendedCONTENT_REMOVED- Content RemovedSERVER_HOLD- Server HoldVOLUNTARY_TAKEDOWN- Voluntary TakedownUNRESOLVED- UnresolvedFALSE_POSITIVE- False PositiveTOKEN_LISTING_REMOVED- Agreed token listing removedTOKEN_TRADING_BLOCKED- Trading blocked on agreed platformTOKEN_WARNING_ADDED- Token warning added (partial mitigation)
Price per successful takedown, net plus VAT, that the customer accepted with the order. 0.00 is a real price; null means no price was frozen.
Domain registrar, e.g. ‘Openprovider’, ‘Sav.com’
Domain registration date from WHOIS.
Domain expiry date from WHOIS.
WHOIS status, e.g. ‘clientTransferProhibited’, ‘serverHold’
Resolved IP address (may be proxy IP).
Real server IP behind CDN/proxy.
AS number, e.g. ‘AS13335’
Hosting provider, e.g. ‘Hostinger’, ‘Hetzner’
CDN/proxy provider, e.g. ‘Cloudflare’
Whether the domain is behind a CDN/proxy.
Backend service, e.g. ‘Supabase’, ‘Vercel’
Project ID at backend provider.
SSL certificate issue date.
SSL certificate expiry date.
Certificate issuer, e.g. ‘Let’s Encrypt’, ‘Cloudflare’
DNS A record information (DEPRECATED - use dns_raw)
DNS NS record information (DEPRECATED - use dns_raw)
Full DNS records as JSON. Expected structure: {“a”: […], “aaaa”: […], “cname”: […], “mx”: […], “ns”: […], “txt”: […], “soa”: […], “caa”: […]}
Score, e.g. ‘16/93’
Link to VirusTotal report.
Link to urlscan.io result.
URL to screenshot in Hetzner S3 Object Storage.
When the screenshot was taken.
Serializer for abuse contact details.
object
REGISTRAR- RegistrarHOSTING- Hosting ProviderCDN- CDN / ProxyBACKEND- Backend ServiceREGISTRY- Domain RegistryOTHER- Other
Provider name, e.g. ‘Cloudflare’, ‘Openprovider’
Abuse email address.
URL to abuse report form.
NOT_SENT- Not SentSENT- SentACKNOWLEDGED- AcknowledgedACTION_TAKEN- Action TakenREJECTED- RejectedNO_RESPONSE- No Response
Provider case reference, e.g. ‘Case 00954977’
Serializer for blacklist submission details.
object
P1- P1 - Immediate (GSB, Netcraft, SmartScreen)P2- P2 - Distribution (Spamhaus, Openphish, SpamCop)P3- P3 - Prevention (VirusTotal, Symantec, ScamAdviser)
Blacklist service name, e.g. ‘Google Safe Browsing’, ‘Spamhaus’
URL for submission.
PENDING- PendingSUBMITTED- SubmittedLISTED- ListedREJECTED- Rejected
When listing was confirmed.
Example
{ "count": 123, "next": "http://api.example.org/accounts/?page=4", "previous": "http://api.example.org/accounts/?page=2", "results": [ { "category": "website", "token_objective": "listing_removed", "status": "REQUESTED", "closed_at_source": "MEASURED", "resolution": "DOMAIN_SUSPENDED", "price_currency": "USD", "abuse_contacts": [ { "contact_type": "REGISTRAR", "report_status": "NOT_SENT" } ], "blacklist_submissions": [ { "tier": "P1", "status": "PENDING" } ] } ]}Invalid query parameters or request data. Field errors appear directly on the response; malformed JSON has a detail message.
object
Field names mapped directly to validation error messages.
object
Example
{ "target_website": [ "Target host is not a public address." ]}The API key is missing, invalid, revoked or belongs to an inactive user.
object
Examplegenerated
{ "detail": "example"}The requested page or record does not exist or cannot be accessed.
object
Examplegenerated
{ "detail": "example"}Too many requests or failed authentication attempts. Try again later.
object
Examplegenerated
{ "detail": "example"}