---
title: "Upload media"
method: POST
path: "/v1/media/"
tags: ["Media"]
---

# Upload media

`POST /v1/media/`

## Request

- Base URL: `https://api.yoco.com`
- URL: `https://api.yoco.com/v1/media/`
- Auth: HTTP bearer

Upload a JPEG, PNG, GIF or WebP image of up to 10 MB. Attach the returned media's `id` to a catalogue item, brand or category.

**Required scopes: `business/catalogue:read`, `business/catalogue:write`**

## Request body `application/x-www-form-urlencoded`

- UploadMediaRequest
  - `file` string, binary, required: The image file to upload.
  - `category` 'catalogue', required

## Response `201`

Successful Response

- Media
  - `id` string, required: The unique identifier of the media.
  - `type` 'image', required
  - `mime_type` string, required: The mime type indicates the format of the media.
  - `url` string, required: The URL of the media file.
  - `created_at` string, date-time, required: The media creation date and time in ISO 8601 format.
  - `updated_at` string, date-time, nullable, required: The date and time the media was last modified in ISO 8601 format.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `413`: Content Too Large
- `415`: Unsupported Media Type
- `429`: Too Many Requests

## Changes

- **2026-10-15** `2505c2f21875`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/yoco/apis/yoco-api/changes/v1/media/post.md)

---

[API](https://skmtc.dev/yoco/apis/yoco-api.md) - [All operations](https://skmtc.dev/yoco/apis/yoco-api/llms.txt) - [OpenAPI document](https://skmtc.dev/yoco/apis/yoco-api/revisions/daf9b9d86161?raw)
