---
title: "Changes to Creates an upload"
method: POST
path: "/uploads.json"
---

# Changes to Creates an upload

`POST /uploads.json`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 5 of 52 revisions.

- **2026-06-08** `4c4a6f2d6793`: 1 breaking, 1 warning
- **2026-01-04** `9d06e60c0130`: 1 info
- **2024-11-26** `3d343acfc1c5`: 1 info
- **2022-10-03** `0ab7b28a55ba`: 1 info
- **2022-03-05** `e1108b0434c0`: 4 breaking, 5 warning, 17 info

## Changes

- **2026-06-08** `4c4a6f2d6793`: 1 breaking, 1 warning
  - added the new required request property `upload_type`
  - removed the request property `type`
- **2026-01-04** `9d06e60c0130`: 1 info
  - added the optional property `optimized_video` to the response with the `200` status
- **2024-11-26** `3d343acfc1c5`: 1 info
  - added the optional property `thumbnail` to the response with the `200` status
- **2022-10-03** `0ab7b28a55ba`: 1 info
  - added the optional property `dominant_color` to the response with the `200` status
- **2022-03-05** `e1108b0434c0`: 4 breaking, 5 warning, 17 info
  - removed the media type `application/json` from the request body
  - the response's body type changed from `object` to no type for status `200`
  - the response property `retain_hours` became nullable for the status `200`
  - the `retain_hours` response's property type changed from no type to `string, null` for status `200`
  - removed the optional property `created_at` from the response with the `200` status
  - removed the optional property `origin` from the response with the `200` status
  - removed the optional property `sha1` from the response with the `200` status
  - removed the optional property `updated_at` from the response with the `200` status
  - removed the optional property `user_id` from the response with the `200` status
  - api operation id `createUpload` was added
  - api tag `Uploads` added
  - api tag `Upload` removed
  - added the media type `multipart/form-data` to the request body
  - the response property `filesize` became required for the status `200`
  - the response property `height` became required for the status `200`
  - the response property `id` became required for the status `200`
  - the response property `original_filename` became required for the status `200`
  - the response property `retain_hours` became required for the status `200`
  - the response property `url` became required for the status `200`
  - the response property `width` became required for the status `200`
  - added the required property `extension` to the response with the `200` status
  - added the required property `human_filesize` to the response with the `200` status
  - added the required property `short_path` to the response with the `200` status
  - added the required property `short_url` to the response with the `200` status
  - added the required property `thumbnail_height` to the response with the `200` status
  - added the required property `thumbnail_width` to the response with the `200` status

---

[Operation](https://skmtc.dev/discourse/apis/discourse-api-documentation/docs/uploads.json/post.md) - [API](https://skmtc.dev/discourse/apis/discourse-api-documentation.md) - [Page](https://skmtc.dev/discourse/apis/discourse-api-documentation/changes/uploads.json/post)
