> ## 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 User Uploads

Get public uploads from a specific user.

## Request

<CodeGroup>
  ```bash cURL theme={null}
  curl https://fucksornot.com/api/user/johndoe/uploads
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://fucksornot.com/api/user/johndoe/uploads');
  const data = await response.json();
  ```
</CodeGroup>

## Parameters

| Parameter  | Type   | Description         |
| ---------- | ------ | ------------------- |
| `username` | string | Username to look up |

## Query Parameters

| Parameter | Type    | Description                                                           |
| --------- | ------- | --------------------------------------------------------------------- |
| `page`    | integer | Page number to retrieve. Optional, defaults to `1`.                   |
| `limit`   | integer | Number of uploads per page. Optional, defaults to `12`, maximum `50`. |
| `sort`    | string  | Sort order: `date`, `votes`, or `name`. Optional, defaults to `date`. |
| `tags`    | string  | Comma-separated list of tag slugs to filter uploads by. Optional.     |

## Response

```json theme={null}
{
  "user": {
    "username": "johndoe",
    "created_at": "2024-01-15T10:30:00Z"
  },
  "uploads": [
    {
      "id": "upload-uuid-1",
      "user_id": "user-uuid",
      "filename": "image1.webp",
      "description": "First upload",
      "upload_type": "image",
      "upvotes": 42,
      "downvote_count": 5,
      "created_at": "2025-01-24T12:00:00Z",
      "tags": [...]
    },
    {
      "id": "upload-uuid-2",
      "user_id": "user-uuid",
      "filename": "image2.webp",
      "description": "Second upload",
      "upload_type": "image",
      "upvotes": 28,
      "downvote_count": 3,
      "created_at": "2025-01-23T12:00:00Z",
      "tags": [...]
    }
  ],
  "total": 42,
  "page": 1,
  "totalPages": 5,
  "limit": 12
}
```

| Field             | Type    | Description                                       |
| ----------------- | ------- | ------------------------------------------------- |
| `user.username`   | string  | The looked-up user's username                     |
| `user.created_at` | string  | The user's account creation timestamp             |
| `uploads`         | array   | The uploads for the current page                  |
| `total`           | integer | Total number of public uploads matching the query |
| `page`            | integer | The current page number                           |
| `totalPages`      | integer | Total number of pages available                   |
| `limit`           | integer | Number of uploads per page                        |

## Notes

* Only **public** uploads are returned
* Private uploads are excluded even if they belong to the user
* No authentication required
* Returns empty array if user has no public uploads

## Use Cases

* User profile pages
* Viewing a user's contributions
* Discovering content by creator

## Errors

| Status | Description    |
| ------ | -------------- |
| 404    | User not found |
