> ## Documentation Index
> Fetch the complete documentation index at: https://developer.dashsocial.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a media object

> Creates a new media object for a brand.



## OpenAPI

````yaml api-reference/library-openapi.json POST /brands/{brand_id}/media/v2
openapi: 3.0.2
info:
  contact:
    email: support@dashsocial.com
    name: Dash Social
    url: https://dashsocial.com
  description: Manage media, galleries, products, and more in the Dash Social platform.
  license:
    name: Commercial
    url: https://dashsocial.com/terms
  title: Dash Social Library Backend Service
  version: '1.0'
  x-logo:
    altText: Dash Social logo
    href: https://developer.dashsocial.com
    url: https://developer.dashsocial.com/assets/logo.svg
servers:
  - url: https://library-backend.dashsocial.com
security:
  - BearerAuth: []
tags:
  - description: Endpoints responsible for administrative actions.
    name: Admin
  - description: Endpoint(s) for working with affiliate links in campaigns
    name: AffiliateLinks
  - description: Endpoints responsible for managing AI alternative ads.
    name: AiAlternativeAds
  - description: Endpoints responsible for managing AI alternative media.
    name: AiAlternativeMedia
  - description: Endpoints responsible for fetching AI alternative media for a brand.
    name: BrandAiAlternativeMedia
  - description: Endpoints responsible for creating, reading, and updating campaigns.
    name: Campaign
  - description: Endpoints responsible for bulk campaigns actions for many brands.
    name: CampaignBulk
  - description: Endpoints for campaign benchmarks.
    name: CampaignBenchmarks
  - description: CRUD endpoint for comparing campaigns
    name: Campaign Comparison
  - description: Endpoints responsible for searching for competitors
    name: Competitors
  - description: Endpoints relating to content automations
    name: Content Automations
  - description: Endpoints relating to content automations across organizations
    name: Content Automations Cross Organization
  - description: Endpoints for content rights management.
    name: ContentRights
  - description: Endpoints relating to brand media content tags.
    name: BrandMediaContentTags
  - description: Endpoints relating to content tags.
    name: ContentTags
  - description: Endpoints relating to custom metrics
    name: Custom Metrics
  - description: Endpoints relating to segment clusters tags
    name: SegmentClusterTags
  - description: Endpoints relating to segment clusters tag associations
    name: SegmentClusterTagAssociations
  - description: Retrieve competitors for a channel
    name: CompetitorsSearch
  - description: Endpoints responsible for creating, reading, and updating galleries.
    name: Gallery
  - description: Public endpoints responsible for reading galleries
    name: PublicGallery
  - description: Endpoints responsible for gallery tags operations.
    name: GalleryTags
  - description: Endpoints relating to content automations.
    name: ContentContentAutomations
  - description: >-
      Endpoints responsible for starting, continuing, and reading gallery
      transfers
    name: GalleryTransfer
  - description: Endpoints to fetch Google Analytics data for brands
    name: GoogleAnalytics
  - description: Endpoints responsible for processing media (mostly superseded by v2).
    name: MediaV1
  - description: Endpoints responsible for searching for media
    name: MediaSearch
  - description: >-
      Endpoints responsible for creating, reading, updating a single piece of
      media.
    name: Single Media
  - description: Endpoints responsible for creating, reading, and updating media.
    name: Media
  - description: Endpoints responsible for query aggregated media timeseries metrics.
    name: MediaTimeseriesMetrics
  - description: Public endpoints responsible for reading media
    name: PublicMedia
  - description: Endpoints responsible for creating, reading, and updating products.
    name: Product
  - description: Public endpoints responsible for reading products.
    name: PublicProduct
  - description: >-
      Endpoints responsible for creating, reading, and updating Product
      Catalogs.
    name: Product Catalog
  - description: Endpoints responsible for creating, reading, and updating Product Feeds.
    name: Product Feed
  - description: Report generation
    name: Reports
  - description: Endpoints responsible for fetching Open Graph metadata.
    name: URL Metadata
  - description: UTM Settings, preset values and encoding/decoding of scheduler posts
    name: UTMSettings
  - description: Endpoints for video generation usage.
    name: VideoGeneration
paths:
  /brands/{brand_id}/media/v2:
    parameters:
      - description: The Dash Social assigned ID of the brand.
        in: path
        name: brand_id
        required: true
        schema:
          format: int32
          type: integer
    post:
      tags:
        - Media
      summary: Create a media object
      description: Creates a new media object for a brand.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MediaV2'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MediaV2'
          description: Created
        '422':
          $ref: '#/components/responses/UNPROCESSABLE_ENTITY'
        default:
          $ref: '#/components/responses/DEFAULT_ERROR'
components:
  schemas:
    MediaV2:
      properties:
        brand_id:
          readOnly: true
          type: integer
        brand_media_id:
          readOnly: true
          type: integer
        brand_media_status:
          description: Status of the brand media (e.g. PROCESSED, HIDDEN, NEW).
          readOnly: true
          type: string
        callback_socket_id:
          description: ID of WebSocket to notify when media conversion is complete.
          type: string
        can_publish_within:
          allOf:
            - $ref: '#/components/schemas/DateTimeRange'
          description: Media is only allowed to be published within this range of dates.
          readOnly: true
        caption_question:
          allOf:
            - $ref: '#/components/schemas/SentimentQuestion'
          description: Whether the caption of this media item includes a question.
          readOnly: true
        caption_sentiment:
          allOf:
            - $ref: '#/components/schemas/Sentiment'
          description: Sentiment as determined by the caption of this media item.
          readOnly: true
        collections:
          description: Collections that the media belong to.
          readOnly: true
          type: object
        comment_sentiment:
          allOf:
            - $ref: '#/components/schemas/Sentiment'
          description: >-
            Sentiment as determined by the aggregated comments on this media
            item.
          readOnly: true
        community_engagement:
          description: Media engagement for community overview
          readOnly: true
          type: integer
        content_rights_expiry_date:
          description: Expiry date of the content rights.
          format: date-time
          readOnly: true
          type: string
        content_rights_requested_by:
          description: User ID of the person who requested content rights.
          readOnly: true
          type: string
        content_rights_requested_date:
          description: Date when the content rights were requested.
          format: date-time
          readOnly: true
          type: string
        content_rights_type:
          description: Content rights status of the media.
          enum:
            - APPROVED
            - NOT_REQUESTED
            - REQUESTED
            - LAPSED
            - FAILED
            - EXPIRED
          readOnly: true
          type: string
        content_tags:
          description: content tag names that brand media can be tagged with
          example:
            - Tag 1
            - Tag 2
          items: {}
          type: array
        created_at:
          description: An ISO-8601 formatted timestamp of when the object was created.
          format: date-time
          readOnly: true
          type: string
        creator:
          allOf:
            - $ref: '#/components/schemas/Creator'
          description: Creator info for the media
          readOnly: true
        custom_metrics:
          items:
            allOf:
              - $ref: '#/components/schemas/CustomMetric'
            readOnly: true
          type: array
        facebook:
          description: Facebook source data.
          readOnly: true
          type: object
        id:
          description: The object's ID.
          readOnly: true
          type: integer
        image:
          allOf:
            - $ref: '#/components/schemas/ImageMedia'
          description: Data if type is `IMAGE`.
        instagram:
          description: Instagram source data.
          readOnly: true
          type: object
        instagram_ads:
          description: Instagram ads source data.
          readOnly: true
          type: object
        instagram_story:
          description: Instagram story source data.
          readOnly: true
          type: object
        instagram_story_frame:
          description: Instagram story frame source data.
          readOnly: true
          type: object
        instagram_user:
          description: Instagram User source data.
          readOnly: true
          type: object
        likeshop:
          allOf:
            - $ref: '#/components/schemas/GalleryLikeshopStat'
          description: Likeshop Stats.
        linkedin:
          description: LinkedIn source data.
          readOnly: true
          type: object
        media_group:
          description: Media group ID.
          readOnly: true
          type: integer
        meta:
          allOf:
            - $ref: '#/components/schemas/MediaV2Meta'
          description: Metadata describing this media item.
        pinterest:
          description: Pinterest source data.
          readOnly: true
          type: object
        predictions:
          allOf:
            - $ref: '#/components/schemas/Predictions'
          description: >-
            Contains vision predictions for this media. Only returned if
            `include` query param contains "predictions".
          readOnly: true
        snapchat:
          description: Snapchat source data.
          readOnly: true
          type: object
        source:
          description: Source of media.
          enum:
            - INSTAGRAM
            - INSTAGRAM_STORY
            - PINTEREST
            - FACEBOOK
            - TIKTOK
            - TIKTOK_AD
            - TWITTER
            - YOUTUBE
            - LINKEDIN
            - THREADS
            - SNAPCHAT
            - UPLOAD
            - EDITOR
            - AI_GENERATION
            - FACEBOOK_ADS
            - FACEBOOK_LINK
            - FACEBOOK_TEXT
            - FACEBOOK_TEXT_LINK
            - TWITTER_LINK
            - TWITTER_TEXT
          type: string
        source_account_id:
          description: The native ID of the account that created this post, if applicable.
          readOnly: true
          type: string
        source_created_at:
          description: >-
            An ISO-8601 formatted timestamp of when the source object was
            created.
          format: date-time
          type: string
        source_id:
          description: Source ID of media.
          readOnly: true
          type: string
        source_type:
          description: Type of source.
          enum:
            - UGC
            - OWNED
            - OTHER
          type: string
        threads:
          description: Threads source data.
          readOnly: true
          type: object
        tiktok:
          description: TikTok source data.
          readOnly: true
          type: object
        tiktok_ad:
          description: TikTok Ad source data.
          readOnly: true
          type: object
        twitter:
          description: Twitter source data.
          readOnly: true
          type: object
        type:
          description: Type of media.
          enum:
            - IMAGE
            - VIDEO
            - CAROUSEL
            - REEL
          type: string
        updated_at:
          description: An ISO-8601 formatted timestamp of when the object was last updated.
          format: date-time
          readOnly: true
          type: string
        variants:
          description: 'Variants of media: TEXT, LINK'
          items:
            enum:
              - TEXT
              - LINK
            type: string
          type: array
        video:
          allOf:
            - $ref: '#/components/schemas/VideoMedia'
          description: Data if type is `VIDEO`.
        video_predictions:
          allOf:
            - $ref: '#/components/schemas/VideoPredictions'
          description: >-
            Contains vision predictions for video media, which is a list of
            prediction values by frame equidistant to the length of the video
          readOnly: true
        video_predictions_interval_sec:
          description: Time interval for sampled video predictions
          type: number
        video_suggested_thumbnail_list:
          items:
            allOf:
              - $ref: '#/components/schemas/VideoSuggestedThumbnail'
            description: List of suggested thumbnails for higher engagement
            readOnly: true
          type: array
        visual_features:
          description: Visual features string of this media
          readOnly: true
          type: string
        youtube:
          description: YouTube source data
          readOnly: true
          type: object
      required:
        - source
        - type
      type: object
    DateTimeRange:
      properties:
        end:
          type: string
        start:
          type: string
      required:
        - end
        - start
      type: object
    SentimentQuestion:
      properties:
        is_question:
          description: Whether this item is a question.
          type: boolean
        user_overridden:
          description: >-
            Whether this item is a question, as determined by library
            intelligence, has been overridden by the user.
          type: boolean
      type: object
    Sentiment:
      properties:
        is_negative:
          description: The overall sentiment of this item is negative.
          type: boolean
        is_neutral:
          description: The overall sentiment of this item is neutral.
          type: boolean
        is_positive:
          description: The overall sentiment of this item is positive.
          type: boolean
        user_overridden:
          description: >-
            The original sentiment assigned to this item by library intelligence
            has been overridden by the user.
          type: boolean
      type: object
    Creator:
      properties:
        avatar_url:
          description: URL pointing to the media creators avatar
          type: string
        handle:
          description: Instagram handle of the media creator
          type: string
      type: object
    CustomMetric:
      properties:
        aggregation:
          type: string
        description:
          type: string
        formula:
          type: string
        id:
          type: integer
        metric_format:
          type: string
        name:
          type: string
        value:
          type: number
      type: object
    ImageMedia:
      properties:
        editor_data:
          allOf:
            - $ref: '#/components/schemas/ImageEditorData'
          description: Contains UI state for our image editing tools.
        sizes:
          allOf:
            - $ref: '#/components/schemas/ImageSizes'
          description: Contains all available image sizes.
        transforms:
          allOf:
            - $ref: '#/components/schemas/ImageTransforms'
          description: >-
            Transforms that are applied to the image. Currently transforms for
            images are handled client-side, but this may change in the future.
      required:
        - sizes
      type: object
    GalleryLikeshopStat:
      properties:
        clicks:
          nullable: true
          type: integer
        links:
          nullable: true
          type: string
        tiktok_clicks:
          nullable: true
          type: integer
      type: object
    MediaV2Meta:
      properties:
        filename:
          description: The name of the uploaded file.
          type: string
        last_modified_at:
          description: The most recent timestamp at which this media item was modified.
          type: string
        uploaded_by:
          description: DH user ID of the person who uploaded the media.
          type: integer
      type: object
    Predictions:
      properties:
        ad_engagement:
          description: Vision predicted ad engagement rating for media.
          type: number
        conversions:
          description: Vision predicted conversion rating for media.
          type: number
        engagement:
          description: Vision predicted engagement rating for media.
          type: number
        link_clicks:
          description: Vision predicted link click engagement rating for media.
          type: number
      type: object
    VideoMedia:
      properties:
        duration:
          description: Duration of the video in seconds.
          readOnly: true
          type: number
        editor_data:
          allOf:
            - $ref: '#/components/schemas/VideoEditorData'
          description: Contains UI state for our video editing tools.
        frame_rate:
          description: Frame rate of the video.
          readOnly: true
          type: number
        sizes:
          allOf:
            - $ref: '#/components/schemas/VideoSizes'
          description: Contains all available video sizes.
        thumbnails:
          allOf:
            - $ref: '#/components/schemas/VideoThumbnails'
          description: >-
            Contains different size thumbnails, taken from the middle of the
            video.
          readOnly: true
        transforms:
          allOf:
            - $ref: '#/components/schemas/VideoTransforms'
          description: Transforms that are applied to the video server-side.
        video_conversion_warnings:
          description: Warnings raised during video conversion.
          readOnly: true
      required:
        - sizes
      type: object
    VideoPredictions:
      properties:
        engagement:
          description: Vision predicted engagement rating for video media.
          items:
            type: number
          type: array
      type: object
    VideoSuggestedThumbnail:
      properties:
        frame_position:
          description: The time position of the selected frame in the video
          type: number
        index:
          description: Index of the VideoPredictions value
          type: integer
        predictions:
          allOf:
            - $ref: '#/components/schemas/PredictionsV2'
          description: Prediction ratings for the thumbnail
        url:
          description: URL of the suggested thumbnail
          type: string
      type: object
    Error:
      properties:
        code:
          description: Error code
          type: integer
        errors:
          description: Errors
          type: object
        message:
          description: Error message
          type: string
        status:
          description: Error name
          type: string
      type: object
    ImageEditorData:
      properties:
        aspect_ratio:
          description: >-
            Label for the aspect ratio preset the user selected. Not validated
            or used by the backend.
          type: string
        canvas_data:
          $ref: '#/components/schemas/ImageCanvasData'
        zoom_value:
          type: number
      type: object
    ImageSizes:
      properties:
        medium_square:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Medium image. Cropped to a 1:1 aspect ratio.
          readOnly: true
        original:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Original, unmodified image that was uploaded or imported.
        original_converted:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: >-
            Original image converted to JPEG format. Retains same dimensions as
            original.
          readOnly: true
        small:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Small image. Retains aspect ratio of original.
          readOnly: true
        small_square:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Small image. Cropped to a 1:1 aspect ratio.
          readOnly: true
      required:
        - original
      type: object
    ImageTransforms:
      properties:
        crop:
          allOf:
            - $ref: '#/components/schemas/Crop'
          description: Details of image crop.
        parent_media_id:
          description: >-
            If the image has been edited with one of our tools (e.g. the image
            cropper) this will be the ID of the original, unedited media.
          nullable: true
          type: integer
      type: object
    VideoEditorData:
      properties:
        aspect_ratio:
          description: >-
            Label for the aspect ratio preset the user selected. Not validated
            or used by the backend.
          type: string
      type: object
    VideoSizes:
      properties:
        medium_square:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Medium video. Cropped to a 1:1 aspect ratio.
          readOnly: true
        original:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Original, unmodified video that was uploaded or imported.
        original_converted:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Original video converted to H.264 format.
          readOnly: true
        small:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Small video. Retains aspect ratio of original.
          readOnly: true
        small_square:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Small video. Cropped to a 1:1 aspect ratio.
          readOnly: true
      required:
        - original
      type: object
    VideoThumbnails:
      properties:
        medium_square:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Medium thumbnail. Cropped to a 1:1 aspect ratio.
        original:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Original, unmodified thumbnail that was uploaded or imported.
        original_converted:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Original thumbnail converted to JPEG format.
        small:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Small thumbnail. Retains aspect ratio of original video.
        small_square:
          allOf:
            - $ref: '#/components/schemas/Size'
          description: Small thumbnail. Cropped to a 1:1 aspect ratio.
      type: object
    VideoTransforms:
      properties:
        crop:
          allOf:
            - $ref: '#/components/schemas/Crop'
          description: Details of video crop.
          nullable: true
        disable_audio_track:
          description: '`true` if audio track is disabled.'
          type: boolean
        parent_media_id:
          description: >-
            If the video has been edited with one of our tools (e.g. the video
            trimmer) this will be the ID of the original, unedited media.
          type: integer
        trim:
          allOf:
            - $ref: '#/components/schemas/Trim'
          description: Details of video trim.
          nullable: true
      type: object
    PredictionsV2:
      properties:
        engagement:
          description: Vision predicted engagement rating for media.
          type: number
      type: object
    ImageCanvasData:
      properties:
        height:
          type: number
        left:
          type: number
        natural_height:
          type: number
        natural_width:
          type: number
        top:
          type: number
        width:
          type: number
      type: object
    Size:
      properties:
        height:
          description: Height in pixels.
          readOnly: true
          type: integer
        size:
          description: File size in bytes.
          type: integer
        url:
          description: Public URL for media.
          format: url
          type: string
        width:
          description: Width in pixels.
          readOnly: true
          type: integer
      required:
        - url
      type: object
    Crop:
      properties:
        height:
          description: Height of crop in pixels.
          type: number
        width:
          description: Width of crop in pixels.
          type: number
        x:
          description: X position of top left corner of crop in pixels.
          type: number
        'y':
          description: Y position of top left corner of crop in pixels.
          type: number
      type: object
    Trim:
      properties:
        end_time:
          description: Start time of trim in seconds.
          type: number
        start_time:
          description: End time of trim in seconds.
          type: number
      type: object
  responses:
    UNPROCESSABLE_ENTITY:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Unprocessable Entity
    DEFAULT_ERROR:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Default error response
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key from Dash Social developer settings

````