Takedowns Management API
The Takedown Management API provides comprehensive API endpoints for managing takedown requests across different threat types and platforms. This API enables users to create, monitor, and manage takedown requests for malicious content and domains.
Authentication
Check the authentication page to see the available options.
Access and authenticationTakedowns API Base URL
The base URL for the takedown API is https://takedown.bfore.ai/api
Takedown Listing
createdAn enumeration.
descendingAn enumeration.
150Successful Response
Validation Error
GET /v2/takedown/list HTTP/1.1
Host:
Accept: */*
{
"items": [
{
"id": "text",
"created": "2025-12-06T01:39:03.267Z",
"attack_url": "https://example.com",
"value": {
"type": "text",
"value": "text"
},
"brand_name": "text",
"user_id": "text",
"description": "text",
"company_id": 1,
"status_id": 1,
"status_name": "text",
"updated_at": "2025-12-06T01:39:03.267Z",
"brand_id": 1,
"attack_id": 1,
"takedown_type": "text",
"cancellation_reason": "text",
"platform": "text",
"threat_type": "text"
}
],
"total": 1,
"page": 1,
"size": 1,
"pages": 1
}Fetches the details of a takedown request using the provided takedown ID
Successful Response
Validation Error
GET /v2/takedown/{takedown_id} HTTP/1.1
Host:
Accept: */*
{
"id": "text",
"created": "2025-12-06T01:39:03.267Z",
"attack_url": "https://example.com",
"value": {
"type": "text",
"value": "text"
},
"brand_name": "text",
"user_id": "text",
"description": "text",
"company_id": 1,
"status_id": 1,
"status_name": "text",
"updated_at": "2025-12-06T01:39:03.267Z",
"brand_id": 1,
"attack_id": 1,
"takedown_type": "text",
"cancellation_reason": "text",
"platform": "text",
"threat_type": "text"
}Takedown Creation
Start a takedown from a confirmed attack
Takedowns are automatically initiated when your PreCrime configuration is enabled for automatic takedown processing. For manual takedown management, confirmed attacks information can be retrieved using the /v2/takedown/attacks endpoint.
Confirmed attacks are already undergoing disruption through our Network Disruption Partners and are ready for complete takedown processing. Only attacks with confirmed status are eligible for takedown initiation. This endpoint automatically filters requests to include only confirmed attacks.
updated_atAn enumeration.
descendingAn enumeration.
150Successful Response
Validation Error
GET /v2/takedown/attacks?from=2025-12-06T01%3A39%3A03.267Z&until=2025-12-06T01%3A39%3A03.267Z HTTP/1.1
Host:
Accept: */*
{
"items": [
{
"company_id": 1,
"protected_asset_id": 1,
"protected_asset_name": "text",
"attack_id": 1,
"attack_name": "text",
"value": {
"type": "text",
"value": "text"
},
"detection_date": "2025-12-06T01:39:03.267Z",
"identification_status": {
"value": "text",
"updated_at": "2025-12-06T01:39:03.267Z"
},
"score": {
"value": 1,
"updated_at": "2025-12-06T01:39:03.267Z"
},
"asset_type": "domain",
"takedown": {
"id": "text",
"created": "2025-12-06T01:39:03.267Z",
"updated_at": "2025-12-06T01:39:03.267Z",
"status": "text",
"status_id": 1,
"status_updated_at": "2025-12-06T01:39:03.267Z"
}
}
],
"total": 1,
"page": 1,
"size": 1,
"pages": 1,
"warning": "text"
}Accept a takedown for an attack that has been flagged as confirmed by BforeAI.
Takedown successfully initiated
Not Found - Threat ID not found or no company assigned
Validation Error
POST /v2/takedown/accept HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 28
{
"attack_id": 1,
"brand_id": 1
}{
"id": "text",
"created": "2025-12-06T01:39:03.267Z",
"attack_url": "https://example.com",
"value": {
"type": "text",
"value": "text"
},
"brand_name": "text",
"user_id": "text",
"description": "text",
"company_id": 1,
"status_id": 1,
"status_name": "text",
"updated_at": "2025-12-06T01:39:03.267Z",
"brand_id": 1,
"attack_id": 1,
"takedown_type": "text",
"cancellation_reason": "text",
"platform": "text",
"threat_type": "text"
}Request a an infrastructure takedown
Request a takedown for a domain not yet identified as malicious. If the domain was already detected, a 202 Accepted response will be returned with a message.
Takedown successfully initiated
Takedown accepted but attack was already detected
Bad Request - e.g., brand is not active
Not Found - e.g., brand ID does not exist
Validation Error
POST /v2/takedown/request HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 59
{
"url": "https://example.com",
"brand_id": 1,
"comment": "text"
}{
"id": "text",
"created": "2025-12-06T01:39:03.267Z",
"attack_url": "https://example.com",
"value": {
"type": "text",
"value": "text"
},
"brand_name": "text",
"user_id": "text",
"description": "text",
"company_id": 1,
"status_id": 1,
"status_name": "text",
"updated_at": "2025-12-06T01:39:03.267Z",
"brand_id": 1,
"attack_id": 1,
"takedown_type": "text",
"cancellation_reason": "text",
"platform": "text",
"threat_type": "text"
}Request a social media takedown
Submit a takedown request for a social media threat. Takedowns created via this endpoint will be assigned a 'pending' status by default.
An enumeration.
An enumeration.
Takedown successfully initiated
Bad Request - e.g., brand is not active
Not Found - e.g., brand ID does not exist
Validation Error
POST /v2/takedown/social-media HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 121
{
"threat_type": "Impersonation",
"platform": "Facebook",
"malicious_url": "https://example.com",
"brand_id": 1,
"comment": "text"
}{
"id": "text",
"created": "2025-12-06T01:39:03.267Z",
"attack_url": "https://example.com",
"value": {
"type": "text",
"value": "text"
},
"brand_name": "text",
"user_id": "text",
"description": "text",
"company_id": 1,
"status_id": 1,
"status_name": "text",
"updated_at": "2025-12-06T01:39:03.267Z",
"brand_id": 1,
"attack_id": 1,
"takedown_type": "text",
"cancellation_reason": "text",
"platform": "text",
"threat_type": "text"
}Takedown Cancelation
Cancel an existing takedown request by providing the takedown ID and a valid cancellation reason. Please note that cancellation success depends on the current status of the takedown process and the involvement of third-party entities. While we will attempt to process all cancellation requests, completion cannot be guaranteed due to external dependencies and process constraints.
Successful Response
Validation Error
POST /v2/takedown/{takedown_id}/cancel HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 43
{
"cancel_reason_id": 1,
"description": "text"
}{
"message": "text",
"takedown_id": "text",
"new_status": "text",
"description": "text"
}Reference Data and Configuration
Here you can find utility endpoints that provide the configuration options used in the rest of the API requests.
Filter by takedown type
Successful Response
Validation Error
GET /v2/takedown/statuses HTTP/1.1
Host:
Accept: */*
[
{
"id": 1,
"name": "text",
"description": "text"
}
]Successful Response
Validation Error
GET /v2/takedown/cancellation_reasons HTTP/1.1
Host:
Accept: */*
[
{
"id": 1,
"reason": "text",
"is_active": true
}
]Last updated
Was this helpful?