---
title: "Create a media item"
method: POST
path: "/media/"
tags: ["Media"]
---

# Create a media item

`POST /media/`

Create a media item. Provide either album_id or category_id, and either embed_url or file.

## Response `200`

OK

- object
  - `success` boolean
  - `media` XFMGMediaItem
    - `username` string
    - `Category` XFMGCategory
      - `custom_fields` unknown[] — Custom field definitions available in this category
        - unknown
      - `can_add` boolean
      - `view_url` string
      - `category_id` integer
      - `title` string
      - `description` string
      - `category_type` string
      - `media_count` integer
      - `album_count` integer
      - `comment_count` integer
      - `allowed_types` unknown[]
        - unknown
      - `min_tags` integer
      - `category_index_limit` integer
      - `parent_category_id` integer
      - `display_order` integer
    - `Album` XFMGAlbum
      - `username` string
      - `Category` XFMGCategory
        - `custom_fields` unknown[] — Custom field definitions available in this category
          - unknown
        - `can_add` boolean
        - `view_url` string
        - `category_id` integer
        - `title` string
        - `description` string
        - `category_type` string
        - `media_count` integer
        - `album_count` integer
        - `comment_count` integer
        - `allowed_types` unknown[]
          - unknown
        - `min_tags` integer
        - `category_index_limit` integer
        - `parent_category_id` integer
        - `display_order` integer
      - `view_users` unknown[] — If view privacy is "shared", the user IDs who can view.
        - unknown
      - `add_users` unknown[] — If add privacy is "shared", the user IDs who can add.
        - unknown
      - `is_watching` boolean — If accessing as a user, true if they are watching this album
      - `thumbnail_url` string
      - `can_add` boolean
      - `can_edit` boolean
      - `can_soft_delete` boolean
      - `can_hard_delete` boolean
      - `can_react` boolean
      - `view_url` string
      - `is_reacted_to` boolean — True if the viewing user has reacted to this content
      - `visitor_reaction_id` integer — If the viewer reacted, the ID of the reaction they used
      - `album_id` integer
      - `category_id` integer
      - `title` string
      - `description` string
      - `create_date` integer
      - `last_update_date` integer
      - `view_privacy` string
      - `add_privacy` string
      - `album_state` string
      - `user_id` integer
      - `media_count` integer
      - `view_count` integer
      - `warning_message` string
      - `last_comment_date` integer
      - `last_comment_id` integer
      - `last_comment_user_id` integer
      - `last_comment_username` string
      - `comment_count` integer
      - `rating_count` integer
      - `rating_avg` number
      - `rating_weighted` number
      - `reaction_score` integer
      - `User` User — Information about the user. Different information will be included based on permissions and verbosity.
        - `about` string
        - `activity_visible` boolean
        - `age` integer — The user's current age. Only included if available.
        - `alert_optout` unknown[]
          - unknown
        - `allow_post_profile` string
        - `allow_receive_news_feed` string
        - `allow_send_personal_conversation` string
        - `allow_view_identities` string
        - `allow_view_profile` string
        - `avatar_urls` object — Maps from size types to URL.
        - `profile_banner_urls` object — Maps from size types to URL.
        - `can_ban` boolean
        - `can_converse` boolean
        - `can_edit` boolean
        - `can_follow` boolean
        - `can_ignore` boolean
        - `can_post_profile` boolean
        - `can_view_profile` boolean
        - `can_view_profile_posts` boolean
        - `can_warn` boolean
        - `content_show_signature` boolean
        - `creation_watch_state` string
        - `custom_fields` object — Map of custom field keys and values.
        - `custom_title` string — Will have a value if a custom title has been specifically set; prefer user_title instead.
        - `dob` object — Date of birth with year, month and day keys.
        - `email` string
        - `email_on_conversation` boolean
        - `gravatar` string
        - `interaction_watch_state` boolean
        - `is_admin` boolean
        - `is_banned` boolean
        - `is_discouraged` boolean
        - `is_followed` boolean — True if the visitor is following this user. Only included if visitor is not a guest.
        - `is_ignored` boolean — True if the visitor is ignoring this user. Only included if visitor is not a guest.
        - `is_moderator` boolean
        - `is_super_admin` boolean
        - `last_activity` integer — Unix timestamp of user's last activity, if available.
        - `location` string
        - `push_on_conversation` boolean
        - `push_optout` unknown[]
          - unknown
        - `receive_admin_email` boolean
        - `secondary_group_ids` unknown[]
          - unknown
        - `show_dob_date` boolean
        - `show_dob_year` boolean
        - `signature` string
        - `timezone` string
        - `use_tfa` boolean
        - `user_group_id` integer
        - `user_state` string
        - `user_title` string
        - `visible` boolean
        - `warning_points` integer — Current warning points.
        - `website` string
        - `view_url` string
        - `user_id` integer
        - `username` string
        - `message_count` integer
        - `question_solution_count` integer
        - `register_date` integer
        - `trophy_points` integer
        - `is_staff` boolean
        - `reaction_score` integer
        - `vote_score` integer
    - `media_embed_url` string — If media type is embed, the embed URL.
    - `media_url` string — If media type is image, audio, or video, the URL to the media data.
    - `file_size` integer — If media type is not embed, the file size in bytes.
    - `height` integer — If media type is not embed, the height of the media.
    - `width` integer — If media type is not embed, the width of the media.
    - `custom_fields` object — Key-value pairs of custom field values for this media item
    - `tags` unknown[]
      - unknown
    - `is_watching` boolean — If accessing as a user, true if they are watching this media item
    - `thumbnail_url` string
    - `can_edit` boolean
    - `can_edit_tags` boolean
    - `can_soft_delete` boolean
    - `can_hard_delete` boolean
    - `can_react` boolean
    - `view_url` string
    - `is_reacted_to` boolean — True if the viewing user has reacted to this content
    - `visitor_reaction_id` integer — If the viewer reacted, the ID of the reaction they used
    - `media_id` integer
    - `title` string
    - `description` string
    - `media_date` integer
    - `last_edit_date` integer
    - `media_type` string
    - `media_state` string
    - `album_id` integer
    - `album_state` string
    - `category_id` integer
    - `user_id` integer
    - `view_count` integer
    - `warning_message` string
    - `last_comment_date` integer
    - `last_comment_id` integer
    - `last_comment_user_id` integer
    - `last_comment_username` string
    - `comment_count` integer
    - `rating_count` integer
    - `rating_avg` number
    - `rating_weighted` number
    - `reaction_score` integer
    - `featured` boolean
    - `User` User — Information about the user. Different information will be included based on permissions and verbosity.
      - `about` string
      - `activity_visible` boolean
      - `age` integer — The user's current age. Only included if available.
      - `alert_optout` unknown[]
        - unknown
      - `allow_post_profile` string
      - `allow_receive_news_feed` string
      - `allow_send_personal_conversation` string
      - `allow_view_identities` string
      - `allow_view_profile` string
      - `avatar_urls` object — Maps from size types to URL.
      - `profile_banner_urls` object — Maps from size types to URL.
      - `can_ban` boolean
      - `can_converse` boolean
      - `can_edit` boolean
      - `can_follow` boolean
      - `can_ignore` boolean
      - `can_post_profile` boolean
      - `can_view_profile` boolean
      - `can_view_profile_posts` boolean
      - `can_warn` boolean
      - `content_show_signature` boolean
      - `creation_watch_state` string
      - `custom_fields` object — Map of custom field keys and values.
      - `custom_title` string — Will have a value if a custom title has been specifically set; prefer user_title instead.
      - `dob` object — Date of birth with year, month and day keys.
      - `email` string
      - `email_on_conversation` boolean
      - `gravatar` string
      - `interaction_watch_state` boolean
      - `is_admin` boolean
      - `is_banned` boolean
      - `is_discouraged` boolean
      - `is_followed` boolean — True if the visitor is following this user. Only included if visitor is not a guest.
      - `is_ignored` boolean — True if the visitor is ignoring this user. Only included if visitor is not a guest.
      - `is_moderator` boolean
      - `is_super_admin` boolean
      - `last_activity` integer — Unix timestamp of user's last activity, if available.
      - `location` string
      - `push_on_conversation` boolean
      - `push_optout` unknown[]
        - unknown
      - `receive_admin_email` boolean
      - `secondary_group_ids` unknown[]
        - unknown
      - `show_dob_date` boolean
      - `show_dob_year` boolean
      - `signature` string
      - `timezone` string
      - `use_tfa` boolean
      - `user_group_id` integer
      - `user_state` string
      - `user_title` string
      - `visible` boolean
      - `warning_points` integer — Current warning points.
      - `website` string
      - `view_url` string
      - `user_id` integer
      - `username` string
      - `message_count` integer
      - `question_solution_count` integer
      - `register_date` integer
      - `trophy_points` integer
      - `is_staff` boolean
      - `reaction_score` integer
      - `vote_score` integer
  - `transcoding` boolean — If true, the media requires transcoding and will be available later. **Note** Conditionally returned

## Other responses

- `default` — Error

---

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