> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fucksornot.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Upload

Retrieve details for a specific upload.

## Request

Public uploads can be fetched without authentication. To access a private upload, include your `auth-token` cookie — only the owner or an admin can view it.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://fucksornot.com/api/upload/550e8400-e29b-41d4-a716-446655440000
  ```

  ```bash cURL (private upload) theme={null}
  curl https://fucksornot.com/api/upload/550e8400-e29b-41d4-a716-446655440000 \
    -H "Cookie: auth-token=YOUR_JWT_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://fucksornot.com/api/upload/550e8400-e29b-41d4-a716-446655440000'
  );
  const upload = await response.json();
  ```
</CodeGroup>

## Response

```json theme={null}
{
  "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",
  "external_url": null,
  "upvotes": 42,
  "downvote_count": 5,
  "is_private": 0,
  "created_at": "2025-01-24T12:00:00Z",
  "tags": [
    {
      "id": "tag-uuid",
      "name": "gadget",
      "slug": "gadget"
    }
  ],
  "username": "johndoe",
  "stats": {
    "voteCount": 47,
    "upvotes": 42,
    "downvotes": 5,
    "averageRating": 7.468085106382978
  }
}
```

## Fields

| Field                 | Type           | Description                                                                                            |
| --------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| `id`                  | UUID           | Unique identifier                                                                                      |
| `user_id`             | UUID           | Owner's user ID                                                                                        |
| `filename`            | string         | Stored filename (null for links)                                                                       |
| `original_name`       | string         | Original filename                                                                                      |
| `description`         | string         | User-provided description                                                                              |
| `upload_type`         | string         | `image` or `link`                                                                                      |
| `external_url`        | string         | URL for links                                                                                          |
| `upvotes`             | integer        | "Fucks" vote count                                                                                     |
| `downvote_count`      | integer        | "Does not fuck" vote count                                                                             |
| `is_private`          | integer        | 0 = public, 1 = private                                                                                |
| `created_at`          | timestamp      | Creation time                                                                                          |
| `tags`                | array          | Associated tags                                                                                        |
| `username`            | string         | Uploader's username                                                                                    |
| `stats`               | object         | Computed vote statistics, always present                                                               |
| `stats.voteCount`     | integer        | Total number of votes (upvotes + downvotes)                                                            |
| `stats.upvotes`       | integer        | "Fucks" vote count                                                                                     |
| `stats.downvotes`     | integer        | "Does not fuck" vote count                                                                             |
| `stats.averageRating` | number \| null | Weighted average rating (upvotes weighted toward 10, downvotes toward 1); `null` if there are no votes |

## Access Control

* Public uploads are accessible without authentication
* Private uploads return 404 unless you're the owner or an admin

## Errors

| Status | Description                        |
| ------ | ---------------------------------- |
| 404    | Upload not found or not accessible |
