Request
Parameters
Response
Fingerprinting
Anonymous voting uses multiple signals to identify unique visitors:- Client-provided fingerprint
- IP address (hashed)
- User agent
- Request headers
IP addresses are hashed (SHA-256) and never stored in plain text.
Anonymous votes on private uploads are rejected with a
400 error ("Invalid upload ID"). Anonymous voting is only available on publicly accessible uploads.Duplicate vote detection is checked server-side via the hashed IP address first, and independently via the
clientFingerprint. A match on either one is enough to flag the request as alreadyVoted.Vote Mapping
Rate Limiting
Anonymous votes are limited to 10 requests per minute per IP address.Best Practices
Use a fingerprinting library
Use a fingerprinting library
Libraries like FingerprintJS provide consistent, reliable fingerprints.
Handle 'already voted' gracefully
Handle 'already voted' gracefully
Check the
alreadyVoted field to inform users if they’ve already voted.Encourage account creation
Encourage account creation
Authenticated votes are more trusted and less restricted.