Report DMCA / Abuse via API
Endpoint: POST https://voe.sx/engine/abuse
Content-Type: application/json
Request Fields
Field | Type | Required? | Description |
abuseType | 0|1|2|3 | yes | 0=Other, 1=Copyright, 2=Trademark, 3=Other legal |
links | string | yes | One URL per line (max 500) |
name | string | no | Contact person |
company | string | no | Company name |
position | string | no | Job title |
address, city, zip, state | string | see below | Postal address (city required) |
country | 2-letter ISO code | yes | e.g. US , NL |
email | string | yes | Valid email address |
phone, fax | string | no | Contact phones |
legalConfirmation1 | boolean | yes | true |
legalConfirmation2 | boolean | yes | true |
legalConfirmation3 | boolean | yes | true |
Example Request
{
"abuseType": "1",
"links": "https://voe.sx/abcdefgh1234\nhttps://voe.sx/ijklmnop5678",
"name": "Monica",
"company": "Example Corp",
"position": "Legal Counsel",
"address": "123 Main St",
"city": "Amsterdam",
"zip": "1012AB",
"state": "NH",
"country": "NL",
"email": "monica@example.com",
"phone": "+31-20-1234567",
"fax": "+31-20-7654321",
"legalConfirmation1": true,
"legalConfirmation2": true,
"legalConfirmation3": true
}
Example Response
{
"success": true,
"message": "Report has been submitted",
"abuse": "30d60758-3c2f-11f0-9b41-52540021a66a",
"urls": 2
}
Errors
400 Bad Request
– missing or invalid fields
422 Unprocessable Entity
– no valid links found
Example
#!/usr/bin/env python3
"""
Minimal test-client for VOE “Report DMCA / Abuse” API
-----------------------------------------------------
• Sends a JSON payload with two URLs
• Prints the parsed JSON response or an error message
"""
import json
import sys
from textwrap import dedent
import requests
API_URL = "https://voe.sx/engine/abuse"
payload = {
"abuseType": "1", # 0-Other, 1-Copyright …
"links": dedent(
"""\
https://voe.sx/123456789123
https://voe.sx/123456789321
"""
).strip(),
"name": "Monica",
"company": "Example Corp",
"position": "Legal Counsel",
"address": "123 Main St",
"city": "Amsterdam",
"zip": "1012 AB",
"state": "NH",
"country": "NL",
"email": "monica@example.com",
"phone": "+31-20-1234567",
"fax": "+31-20-7654321",
"legalConfirmation1": True,
"legalConfirmation2": True,
"legalConfirmation3": True,
}
try:
r = requests.post(
API_URL,
headers={"Content-Type": "application/json"},
data=json.dumps(payload),
timeout=15,
)
r.raise_for_status() # raise if HTTP status 4xx/5xx
print("Status:", r.status_code)
print("Response:", json.dumps(r.json(), indent=2))
except requests.exceptions.HTTPError as e:
# API returned 400 or 422 etc.
print("HTTP error:", e, file=sys.stderr)
if e.response is not None:
print("Response content:", e.response.text, file=sys.stderr)
sys.exit(1)
except requests.exceptions.RequestException as e:
# Networking problem, SSL failure, timeout …
print("Request failed:", e, file=sys.stderr)
sys.exit(1)