Skip to main content
Vote on content without authentication. Uses browser fingerprinting to prevent vote manipulation.

Request

curl -X POST https://api.fucksornot.com/api/vote/anonymous \
  -H "Content-Type: application/json" \
  -d '{
    "uploadId": "550e8400-e29b-41d4-a716-446655440000",
    "vote": "upvote",
    "clientFingerprint": "abc123def456..."
  }'

Parameters

ParameterTypeRequiredDescription
uploadIdUUIDYesThe upload to vote on
votestringYesupvote or downvote
clientFingerprintstringYesBrowser fingerprint hash

Response

{
  "success": true,
  "alreadyVoted": false,
  "vote": "upvote"
}
If already voted:
{
  "success": true,
  "alreadyVoted": true,
  "vote": "upvote"
}

Fingerprinting

Anonymous voting uses multiple signals to identify unique visitors:
  • Client-provided fingerprint
  • IP address (hashed)
  • User agent
  • Request headers
IP addresses are hashed and never stored in plain text.

Vote Mapping

Anonymous VoteEquivalent To
upvotefucks
downvotedoes_not_fuck

Rate Limiting

Anonymous votes have stricter rate limits than authenticated votes to prevent abuse.

Best Practices

Libraries like FingerprintJS provide consistent, reliable fingerprints.
Check the alreadyVoted field to inform users if they’ve already voted.
Authenticated votes are more trusted and less restricted.