Report an abusive public share.
const url = 'https://s.share2.us/example/report-abuse';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"reason":"malware","category":"csam","details":"example","reporter_contact":"example","turnstile_token":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://s.share2.us/example/report-abuse \ --header 'Content-Type: application/json' \ --data '{ "reason": "malware", "category": "csam", "details": "example", "reporter_contact": "example", "turnstile_token": "example" }'Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”The whole body is capped at 32 KiB; a larger one is 413. Fields longer than their maxLength are truncated, not rejected. Reports are rate limited per client address, and when the deployment has a Turnstile secret configured a turnstile_token is required.
object
Report category (ADR-020). csam sorts the report to the top of the admin queue and restricts dismissal to a superadmin. Any other/unknown value is stored as other.
Cloudflare Turnstile token. Required when the deployment is configured with a Turnstile secret; omit otherwise.
Responses
Section titled “Responses”Abuse report accepted. Returned whether or not the share id exists: answering differently would turn this endpoint into a share-id oracle.
object
Example
{ "status": "ok"}The report body exceeded 32 KiB.
object
object
Example
{ "error": { "code": "quota_exceeded" }}Too many reports from this address.
object
object
Example
{ "error": { "code": "quota_exceeded" }}default
Section titled “default”Standard error envelope.
object
object
Example
{ "error": { "code": "quota_exceeded" }}