---
title: "Upload media by file"
method: POST
path: "/api/library/v1/media"
---

# Upload media by file

`POST /api/library/v1/media`

## Query parameters

- `kind` 'video' | 'audio' | 'image' — Kind of media uploaded

## Response `200`

Create media upload

- MediaGet
  - `kind` 'video' | 'audio' | 'image', required — Kind of media uploaded
  - `status` 'processing' | 'ready' | 'failed', required — Status of media uploaded
  - `mime_type` string, required — Media mime type
  - `user_id` string, uuid, required — Author ID
  - `meta` union, required
    - VideoMeta
      - `size_bytes` integer, required — Media video size in bytes
      - `original_meta` object, nullable — Media original meta object
      - `duration_seconds` integer, required — Media video duration in seconds
      - `audio_rate` integer, required — Media audio rate
      - `audio_layout` 'mono' | 'stereo', required — Media audio layout
      - `audio_channels` integer, required — Number of media audio channels
      - `audio_codec_name` string, required — Media audio codec name
      - `video_codec_name` string, required — Media video codec name
      - `video_frame_rate` integer, required — Media video frame rate
      - `video_frame_width` integer, required — Media video frame width
      - `video_frame_height` integer, required — Media video frame height
    - AudioMeta
      - `size_bytes` integer, required — Media audio size in bytes
      - `original_meta` object, nullable — Media original meta object
      - `duration_seconds` integer, required — Media audio duration in seconds
      - `audio_rate` integer, required — Media audio rate
      - `audio_layout` 'mono' | 'stereo', required — Media audio layout
      - `audio_channels` integer, required — Number of media audio channels
      - `audio_codec_name` string, required — Media audio codec name
    - ImageMeta
      - `size_bytes` integer, required — Media image size in bytes
      - `original_meta` object, nullable — Media original meta object
      - `image_width` integer, required — Media image width
      - `image_height` integer, required — Media image height
      - `image_format` string, required — Media image format
  - `name` string, nullable — Name of media uploaded
  - `id` string, uuid, required — ID of media uploaded
  - `created_at` string, date-time, required — Date and time of media creation
  - `updated_at` string, date-time, required — Date and time of the last media update
  - `path` string, required — Path to the media
  - `url` string, uri, nullable — Media url
  - `preview` MediaSlimGet
    - `kind` 'video' | 'audio' | 'image', required — Kind of media uploaded
    - `status` 'processing' | 'ready' | 'failed', required — Status of media uploaded
    - `mime_type` string, required — Media mime type
    - `user_id` string, uuid, required — Author ID
    - `meta` union, required
      - VideoMeta
        - `size_bytes` integer, required — Media video size in bytes
        - `original_meta` object, nullable — Media original meta object
        - `duration_seconds` integer, required — Media video duration in seconds
        - `audio_rate` integer, required — Media audio rate
        - `audio_layout` 'mono' | 'stereo', required — Media audio layout
        - `audio_channels` integer, required — Number of media audio channels
        - `audio_codec_name` string, required — Media audio codec name
        - `video_codec_name` string, required — Media video codec name
        - `video_frame_rate` integer, required — Media video frame rate
        - `video_frame_width` integer, required — Media video frame width
        - `video_frame_height` integer, required — Media video frame height
      - AudioMeta
        - `size_bytes` integer, required — Media audio size in bytes
        - `original_meta` object, nullable — Media original meta object
        - `duration_seconds` integer, required — Media audio duration in seconds
        - `audio_rate` integer, required — Media audio rate
        - `audio_layout` 'mono' | 'stereo', required — Media audio layout
        - `audio_channels` integer, required — Number of media audio channels
        - `audio_codec_name` string, required — Media audio codec name
      - ImageMeta
        - `size_bytes` integer, required — Media image size in bytes
        - `original_meta` object, nullable — Media original meta object
        - `image_width` integer, required — Media image width
        - `image_height` integer, required — Media image height
        - `image_format` string, required — Media image format
    - `name` string, nullable — Name of media uploaded
    - `id` string, uuid, required — ID of media uploaded
    - `created_at` string, date-time, required — Date and time of media creation
    - `updated_at` string, date-time, required — Date and time of the last media update
    - `path` string, required — Path to the media
    - `url` string, uri, nullable — Media url

## Other responses

- `400` — Bad Request
- `422` — Validation Error

---

[API](https://skmtc.net/rask/apis/rask-api-documentation.md) · [All operations](https://skmtc.net/rask/apis/rask-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rask/rask-api-documentation/versions/e517d78f3592/schema)
