Skip to main content
Upload an image or submit a link for community voting.

Upload Types

TypeDescription
imageUpload an image file
image_urlSubmit a URL to an image
linkSubmit a link to external content

Image Upload

curl -X POST https://api.fucksornot.com/api/upload \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -F "upload_type=image" \
  -F "description=Check out this cool gadget" \
  -F "tags=gadget,tech" \
  -F "file=@/path/to/image.jpg"

Image URL Upload

curl -X POST https://api.fucksornot.com/api/upload \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -F "upload_type=image_url" \
  -F "description=Found this online" \
  -F "image_url=https://example.com/image.jpg"
curl -X POST https://api.fucksornot.com/api/upload \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -F "upload_type=link" \
  -F "description=Great video" \
  -F "external_url=https://youtube.com/watch?v=..."

Supported Platforms

Links from these platforms get rich embeds:
  • Bluesky
  • Instagram
  • Threads
  • YouTube
  • Tumblr
  • Spotify

Parameters

ParameterTypeRequiredDescription
upload_typestringYesimage, image_url, or link
descriptionstringYesDescription (max 500 characters)
filefileFor imageImage file (JPEG, PNG, GIF, WebP, max 10MB)
image_urlstringFor image_urlURL to image
external_urlstringFor linkURL to embed
tagsstringNoComma-separated tags (max 10)
is_privatestringNo"true" or "false"

Response

{
  "upload": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "user_id": "user-uuid",
    "filename": "abc123.webp",
    "original_name": "myimage.jpg",
    "description": "Check out this cool gadget",
    "upload_type": "image",
    "upvotes": 0,
    "downvote_count": 0,
    "is_private": 0,
    "created_at": "2025-01-24T12:00:00Z"
  }
}

Duplicate Detection

If the image has already been uploaded:
{
  "duplicate": true,
  "existingUploadId": "existing-upload-uuid",
  "message": "This image has already been uploaded"
}

API Token Upload

For programmatic access, use the /api/v1/upload endpoint with an API token:
curl -X POST https://api.fucksornot.com/api/v1/upload \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -F "upload_type=image" \
  -F "description=Automated upload" \
  -F "file=@image.jpg"

Rate Limiting

Uploads are limited to 20 per hour per user.