List takedowns
const url = 'https://app.nebty.de/core/api/takedowns/?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/?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 (waiting for approval), OPEN, IN_PROGRESS, PENDING_RESPONSE, CLOSED, FAILED or REJECTED. CLOSED alone does not mean the site was taken down; read resolution for the outcome.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Filter takedowns for a specific brand ID
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 Positive
REQUESTED- Requested (Pending Approval)OPEN- 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
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- Requested (Pending Approval)OPEN- 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 Positive
Outcome of the takedown case.
DOMAIN_SUSPENDED- Domain SuspendedCONTENT_REMOVED- Content RemovedSERVER_HOLD- Server HoldVOLUNTARY_TAKEDOWN- Voluntary TakedownUNRESOLVED- UnresolvedFALSE_POSITIVE- False Positive
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": [ { "status": "REQUESTED", "closed_at_source": "MEASURED", "resolution": "DOMAIN_SUSPENDED", "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"}