> ## 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.

# Retrieve media

> Returns a paginated list of media objects for a brand. Filter by platform, date range, media type, and more using the request body.

<Note>
  Need help getting started? Check out the [Get post performance data across all channels](/guides/reporting/get-post-performance-data-across-all-channels) guide for use cases, filters, and sample responses.
</Note>


## OpenAPI

````yaml api-reference/library-openapi.json PUT /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
    put:
      tags:
        - Media
      summary: Retrieve media
      description: >-
        Returns a paginated list of media objects for a brand. Filter by
        platform, date range, media type, and more using the request body.
      parameters:
        - description: Number of results to return in a single response.
          in: query
          name: limit
          required: false
          schema:
            default: 100
            maximum: 1000
            minimum: 0
            type: integer
        - description: The offset of the first result to be returned.
          in: query
          name: offset
          required: false
          schema:
            default: 0
            minimum: 0
            type: integer
        - description: Comma-separated list of IDs to return.
          explode: false
          in: query
          name: ids
          required: false
          schema:
            example:
              - 812371
              - 828318
            items:
              type: integer
            type: array
          style: form
        - description: Comma-separated list of optional fields to include.
          explode: false
          in: query
          name: include
          required: false
          schema:
            example:
              - predictions
            items:
              enum:
                - predictions
                - source_data
                - comment_sentiment
                - visual_features
              type: string
            type: array
          style: form
        - description: Comma-separated list of optional fields to exclude.
          explode: false
          in: query
          name: exclude
          required: false
          schema:
            example:
              - source_data
            items:
              enum:
                - predictions
                - source_data
                - comment_sentiment
                - visual_features
              type: string
            type: array
          style: form
        - description: Next token for deep pagination
          in: query
          name: next_token
          required: false
          schema:
            example: 123123123,321321321
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchMedia'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MediaV2List'
          description: OK
        '422':
          $ref: '#/components/responses/UNPROCESSABLE_ENTITY'
        default:
          $ref: '#/components/responses/DEFAULT_ERROR'
components:
  schemas:
    SearchMedia:
      properties:
        filters:
          $ref: '#/components/schemas/MediaFilters'
        limit:
          default: 100
          description: Number of results to return in a single response.
          maximum: 1000
          minimum: 0
          type: integer
        offset:
          default: 0
          description: The offset of the first result to be returned.
          minimum: 0
          type: integer
        sort_fields:
          default:
            - '-DATE'
          description: >-
            List of sort fields to apply. Prefix any value with `-` for
            descending order (e.g., `-DATE`). For platform-specific sorting, use
            `{PLATFORM}_{METRIC}` (e.g., `-INSTAGRAM_TOTAL_ENGAGEMENTS`,
            `-TIKTOK_VIEWS`, `-FACEBOOK_TOTAL_ENGAGEMENTS`). Common platform
            prefixes: `INSTAGRAM_`, `FACEBOOK_`, `TIKTOK_`, `TWITTER_`,
            `PINTEREST_`, `YOUTUBE_`, `LINKEDIN_`, `SNAPCHAT_`, `THREADS_`.
          example:
            - '-DATE'
            - '-INSTAGRAM_TOTAL_ENGAGEMENTS'
          items:
            description: Sort field. Prefix with `-` for descending order.
            example: '-DATE'
            type: string
            enum:
              - DATE
              - RELEVANCE
              - PERFORMANCE
              - LIKESHOP_CLICKS
              - CROSS_CHANNEL_VIDEO_VIEWS
              - CROSS_CHANNEL_ENGAGEMENT_RATE
              - CROSS_CHANNEL_IMPRESSIONS
              - CROSS_CHANNEL_ENTERTAINMENT_SCORE
              - CROSS_CHANNEL_TOTAL_ENGAGEMENTS
              - CROSS_CHANNEL_EMV
              - CROSS_CHANNEL_EFFECTIVENESS
              - CROSS_CHANNEL_REACH
              - CROSS_CHANNEL_SHARES
              - CONTENT_RIGHTS_EXPIRY_DATE
              - CONTENT_RIGHTS_REQUESTED_DATE
          type: array
        sort:
          description: >-
            Sort field for results. Prefix with `-` for descending order (e.g.,
            `-DATE`). For platform-specific sorting, use the format
            `{PLATFORM}_{METRIC}` (e.g., `-INSTAGRAM_TOTAL_ENGAGEMENTS`,
            `-TIKTOK_VIEWS`). Deprecated in favor of `sort_fields`.
          example: '-DATE'
          type: string
          enum:
            - DATE
            - RELEVANCE
            - PERFORMANCE
            - LIKESHOP_CLICKS
            - CROSS_CHANNEL_VIDEO_VIEWS
            - CROSS_CHANNEL_ENGAGEMENT_RATE
            - CROSS_CHANNEL_IMPRESSIONS
            - CROSS_CHANNEL_ENTERTAINMENT_SCORE
            - CROSS_CHANNEL_TOTAL_ENGAGEMENTS
            - CROSS_CHANNEL_EMV
            - CROSS_CHANNEL_EFFECTIVENESS
            - CROSS_CHANNEL_REACH
            - CROSS_CHANNEL_SHARES
            - CONTENT_RIGHTS_EXPIRY_DATE
            - CONTENT_RIGHTS_REQUESTED_DATE
        ids:
          description: Array of media ids to return
          example:
            - 1234
            - 4567
          items:
            type: integer
          type: array
        include_creator:
          default: false
          description: Should include creator info
          type: boolean
        include_instagram_users:
          description: Should include instagram users
          type: boolean
        collapse_field:
          description: Field used to collapse hits (used to avoid duplicate posts)
          example: source_id
          type: string
        campaign_creator_filters_options:
          allOf:
            - $ref: '#/components/schemas/CampaignCreatorFiltersOptions'
          description: >-
            When passing in a list of campaign IDs as a filter, these are
            options on how to apply the campaign's creator filters
      type: object
    MediaV2List:
      properties:
        data:
          description: List of MediaV2 Object.
          items:
            $ref: '#/components/schemas/MediaV2'
          type: array
        paging:
          allOf:
            - $ref: '#/components/schemas/PagingData'
          description: Paging object.
      type: object
    MediaFilters:
      properties:
        brand_media_types:
          items:
            description: Brand Media Type
            example: INSTAGRAM_OWNED
            type: string
            enum:
              - INSTAGRAM_OWNED
              - INSTAGRAM_UGC
              - INSTAGRAM_OTHER
              - INSTAGRAM_OWNED_IGTV
              - INSTAGRAM_UGC_IGTV
              - INSTAGRAM_OTHER_IGTV
              - INSTAGRAM_STORY
              - INSTAGRAM_STORY_UGC
              - PINTEREST_OWNED
              - FACEBOOK_OWNED
              - FACEBOOK_LINK
              - FACEBOOK_TEXT_LINK
              - FACEBOOK_TEXT
              - TWITTER_OWNED
              - TWITTER_OWNED_LINK
              - TWITTER_OWNED_TEXT
              - TIKTOK_OWNED
              - YOUTUBE_OWNED
              - UPLOADED
          type: array
        source_created_at:
          $ref: '#/components/schemas/DateRangeFilters'
        instagram:
          $ref: '#/components/schemas/InstagramFilters'
        instagram_story_frame:
          $ref: '#/components/schemas/InstagramStoryFrameFilters'
        instagram_ugc:
          $ref: '#/components/schemas/InstagramUGCFilters'
        instagram_story_ugc:
          $ref: '#/components/schemas/InstagramUGCFilters'
        facebook:
          $ref: '#/components/schemas/FacebookFilters'
        tiktok:
          $ref: '#/components/schemas/TikTokFilters'
        tiktok_ugc:
          $ref: '#/components/schemas/TikTokUGCFilters'
        tiktok_ad:
          $ref: '#/components/schemas/TikTokAdFilters'
        pinterest:
          $ref: '#/components/schemas/PinterestFilters'
        twitter:
          $ref: '#/components/schemas/TwitterFilters'
        youtube:
          $ref: '#/components/schemas/YouTubeFilters'
        linkedin:
          $ref: '#/components/schemas/LinkedinFilters'
        threads:
          $ref: '#/components/schemas/ThreadsFilters'
        snapchat:
          $ref: '#/components/schemas/SnapchatFilters'
        content_tags:
          description: content tag names that brand media can be tagged with
          example:
            - Tag 1
            - Tag 2
          items:
            type: string
          type: array
        content_tag_match_type:
          description: >-
            Indicates if media should contain ALL supplied content tag IDs, or
            ANY supplied content tag IDs
          enum:
            - ALL
            - ANY
          example: ANY
          type: string
        ai_generated:
          $ref: '#/components/schemas/AIGeneratedFilters'
        boards:
          description: Array of Board IDs to filter media by
          example:
            - 1234
            - 4567
          items:
            type: integer
          type: array
        brand_ids:
          description: List of brand IDs to check for media
          example:
            - 144
            - 1
          items:
            type: integer
          type: array
        brand_media_status:
          description: >-
            Filter by brand media status (e.g. HIDDEN for hidden UGC). When not
            set, defaults to PROCESSED and NEW (excludes hidden).
          enum:
            - PROCESSED
            - HIDDEN
            - NEW
            - NEW_NO_ANNOTATIONS
            - VIDEO_PROCESSING
          type: string
        campaign_ids:
          description: Array of campaign IDs to filter creators in source media
          example:
            - 1234
            - 4567
          items:
            type: integer
          type: array
        campaigns:
          description: Array of campaign IDs to filter media by
          example:
            - 123
            - 456
          items:
            type: integer
          type: array
        campaigns_post_type:
          description: Post Type to support multi channel media type filtering
          enum:
            - VIDEO
            - POST
          example: VIDEO
          type: string
        caption_is_negative:
          description: Is the post caption labeled as negative.
          type: boolean
        caption_is_neutral:
          description: Is the post caption labeled as neutral.
          type: boolean
        caption_is_positive:
          description: Is the post caption labeled as positive.
          type: boolean
        caption_is_question:
          description: Is the post a labeled as a question.
          type: boolean
        color:
          description: Major colour in the media
          example: red
          type: string
        colors:
          description: Major colours in the media
          items:
            description: Major colour in the media
            enum:
              - red
              - orange
              - yellow
              - green
              - cyan
              - blue
              - purple
              - pink
              - brown
              - black
              - gray
              - white
            example: red
            type: string
          type: array
        comments_are_negative:
          description: Are the post comments labeled as negative.
          type: boolean
        comments_are_neutral:
          description: Are the post comments labeled as neutral.
          type: boolean
        comments_are_positive:
          description: Are the post comments labeled as positive.
          type: boolean
        content_rights_requested_by:
          description: Filter by who requested content rights (Dash user_id)
          example: '12345'
          type: string
        content_rights_requested_date:
          allOf:
            - $ref: '#/components/schemas/DateRangeFilters'
          description: Filter by date range when content rights were requested
        content_rights_type:
          description: Filter by content rights status values
          example:
            - APPROVED
            - REQUESTED
          items:
            enum:
              - APPROVED
              - NOT_REQUESTED
              - REQUESTED
              - LAPSED
              - FAILED
              - EXPIRED
            type: string
          type: array
        excluded_channels:
          description: Social media channels to exclude from the most viewed videos query.
          items:
            enum:
              - FACEBOOK
              - INSTAGRAM
              - TWITTER
              - PINTEREST
              - TIKTOK
              - YOUTUBE
              - LINKEDIN
              - THREADS
              - COMPLIANCE
              - SNAPCHAT
            type: string
          type: array
        excluded_media_ids:
          description: Array of media IDs to exclude from results
          example:
            - 1234
            - 4567
          items:
            type: integer
          type: array
        galleries:
          description: Array of gallery IDs to filter media by
          example:
            - 1234
            - 4567
          items:
            type: integer
          type: array
        image_data:
          description: JPEG Image as base64
          example: >-
            data:image/jpeg;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
          type: string
        include_disconnected_story_ugc:
          description: >-
            If true, results will include UGC story media that was imported via
            DM and more than 24 hours old. For policy reasons, we only want
            these included in specific parts of the platform.
          type: boolean
        indication_filter:
          $ref: '#/components/schemas/IndicationFilter'
        media_id:
          description: id of media used to perform visual search
          type: integer
        media_types:
          items:
            description: Media Type
            example: VIDEO
            type: string
          type: array
        prediction:
          $ref: '#/components/schemas/PredictionFilters'
        ratio:
          description: Shape of media
          example: SQUARE
          type: string
        ratios:
          description: List of shapes of media
          items:
            description: Shape of media
            enum:
              - SQUARE
              - LANDSCAPE
              - PORTRAIT
            example: SQUARE
            type: string
          type: array
        rights_approved:
          description: Whether brand has acquired content right
          type: boolean
        scope_platform_filters:
          description: >-
            When passing multiple brand_media_types and platform specific
            filters such as YouTubeFilters, scope the platform specific filters
            to the relvant platform only. If this is false, all platform
            specific filters will apply to all platforms, so no results will be
            returned.
          type: boolean
        search_term:
          description: Term to search for in the media
          type: string
        search_terms:
          description: Search in terms
          type: boolean
        size:
          description: Minimum resolution of media
          example: 800x600
          type: string
        source_account_ids:
          description: account ids of the source media
          example:
            - '123456789'
            - '987654321'
          items:
            type: string
          type: array
        source_ids:
          description: Array of source ids to return
          example:
            - '1234'
            - '4567'
          items:
            type: string
          type: array
        uploads:
          $ref: '#/components/schemas/UploadFilters'
      type: object
    CampaignCreatorFiltersOptions:
      properties:
        only_excluded_media:
          default: false
          description: >-
            If set to true, only excluded posts will be returned in the query.
            This will override all filters.
          type: boolean
        show_excluded_media:
          default: false
          description: >-
            If set to true, excluded posts will not be filtered out of the media
            query
          type: boolean
      type: object
    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
    PagingData:
      properties:
        count:
          description: Number of records in the current page.
          type: integer
        next:
          description: URL to the next page of data.
          format: url
          nullable: true
          type: string
        previous:
          description: URL to the previous page of data.
          format: url
          nullable: true
          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
    DateRangeFilters:
      properties:
        end:
          description: End date of time range
          example: '2020-12-31'
          pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(Z|((\+|-)\d{2}:\d{2})))?$
          type: string
        start:
          description: Start date of time range
          example: '2020-01-01'
          pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(Z|((\+|-)\d{2}:\d{2})))?$
          type: string
      type: object
    InstagramFilters:
      properties:
        caption_keywords:
          $ref: '#/components/schemas/KeywordFilters'
        features_account:
          description: Find posts that mention or tag a creator's account handle
          example: _flapjackie
          type: string
        is_boosted:
          description: Is Media a boosted Instagram post
          type: boolean
        post_type:
          description: Instagram post type
          enum:
            - reel
            - REEL
            - video
            - VIDEO
            - image
            - IMAGE
            - carousel
            - CAROUSEL
          example: REEL
          type: string
        post_types:
          items:
            description: Instagram post type
            enum:
              - reel
              - REEL
              - video
              - VIDEO
              - image
              - IMAGE
              - carousel
              - CAROUSEL
            example: REEL
            type: string
          type: array
      type: object
    InstagramStoryFrameFilters:
      properties:
        caption_keywords:
          $ref: '#/components/schemas/KeywordFilters'
        contain_swipe_up_link:
          description: If the post contains a swipe up link.
          type: boolean
      type: object
    InstagramUGCFilters:
      properties:
        is_riq:
          description: >-
            If true, the user who created this post has been added to the brand
            as a relationship.
          type: boolean
        post_types:
          items:
            description: Instagram post type
            enum:
              - reel
              - REEL
              - video
              - VIDEO
              - image
              - IMAGE
              - carousel
              - CAROUSEL
            example: REEL
            type: string
          type: array
        ugc_media_type:
          description: UGC Media Type
          enum:
            - mentioned
            - MENTIONED
            - tagged
            - TAGGED
            - all
            - ALL
            - any
            - ANY
          example: MENTIONED
          type: string
      type: object
    FacebookFilters:
      properties:
        caption_keywords:
          $ref: '#/components/schemas/KeywordFilters'
        is_boosted:
          description: Is Media a boosted Facebook post
          type: boolean
        post_types:
          items:
            description: Post Type
            enum:
              - video
              - VIDEO
              - photo
              - PHOTO
              - carousel
              - CAROUSEL
              - text
              - TEXT
              - link
              - LINK
              - reel
              - REEL
            example: VIDEO
            type: string
          type: array
      type: object
    TikTokFilters:
      properties:
        caption_keywords:
          $ref: '#/components/schemas/KeywordFilters'
        distribution_type:
          description: How the video was published or distributed on TikTok
          enum:
            - organic
            - ORGANIC
            - promoted
            - PROMOTED
            - dark_posted
            - DARK_POSTED
          example: ORGANIC
          type: string
        media_type:
          items:
            description: TikTok content type
            enum:
              - video
              - VIDEO
              - photo
              - PHOTO
            example: VIDEO
            type: string
          type: array
      type: object
    TikTokUGCFilters:
      properties:
        is_hashtag:
          description: Is the post branded hashtag.
          example: true
          type: boolean
      type: object
    TikTokAdFilters:
      properties:
        source_campaign_ids:
          items:
            description: TikTok Ad source campaign id
            example: '123'
            type: string
          type: array
      type: object
    PinterestFilters:
      properties:
        is_video:
          description: Is pin a video
          example: true
          type: boolean
        pin_board_privacy:
          description: Is pin protected
          example: public
          type: string
        post_types:
          items:
            description: Post Type
            enum:
              - video
              - VIDEO
              - image
              - IMAGE
              - photo
              - PHOTO
              - carousel
              - CAROUSEL
            example: video
            type: string
          type: array
      type: object
    TwitterFilters:
      properties:
        caption_keywords:
          $ref: '#/components/schemas/KeywordFilters'
        is_dark_post:
          description: Is Media a dark post
          example: true
          type: boolean
        post_types:
          items:
            description: Post Type
            enum:
              - video
              - VIDEO
              - photo
              - PHOTO
              - carousel
              - CAROUSEL
              - text
              - TEXT
              - link
              - LINK
            example: VIDEO
            type: string
          type: array
      type: object
    YouTubeFilters:
      properties:
        caption_keywords:
          $ref: '#/components/schemas/KeywordFilters'
        post_types:
          items:
            description: Post Type
            enum:
              - live
              - LIVE
              - on_demand
              - ON_DEMAND
              - shorts
              - SHORTS
            example: LIVE
            type: string
          type: array
        privacy_status:
          items:
            description: Privacy Status
            enum:
              - private
              - PRIVATE
              - public
              - PUBLIC
              - unlisted
              - UNLISTED
            example: PRIVATE
            type: string
          type: array
      type: object
    LinkedinFilters:
      properties:
        caption_keywords:
          $ref: '#/components/schemas/KeywordFilters'
        post_types:
          description: LinkedIn post types to filter on
          example:
            - IMAGE
            - VIDEO
          items:
            enum:
              - VIDEO
              - TEXT
              - MULTI_IMAGE
              - DOCUMENT
              - IMAGE
              - LINK
            type: string
          type: array
      type: object
    ThreadsFilters:
      properties:
        caption_keywords:
          $ref: '#/components/schemas/KeywordFilters'
        post_types:
          description: Threads post types to filter on
          example:
            - IMAGE
            - VIDEO
          items:
            enum:
              - TEXT_POST
              - IMAGE
              - VIDEO
              - CAROUSEL_ALBUM
              - AUDIO
              - REPOST_FACADE
            type: string
          type: array
      type: object
    SnapchatFilters:
      properties:
        asset_types:
          description: Snapchat asset types to filter on
          example:
            - STORY
            - SAVED_STORY
            - SPOTLIGHT
            - SNAP
          items:
            enum:
              - SAVED_STORY
              - SPOTLIGHT
              - STORY
              - SNAP
            type: string
          type: array
        caption_keywords:
          $ref: '#/components/schemas/KeywordFilters'
        parent_story_source_id:
          description: Snapchat parent story source id
          example: ac234340-eb80-5439-9906-8672bb73075c
          type: string
      type: object
    AIGeneratedFilters:
      properties:
        media_types:
          items:
            description: Media Type
            example: IMAGE
            type: string
          type: array
      type: object
    IndicationFilter:
      properties:
        indications:
          description: 'Search for #tag or @mention in searchable captions field.'
          items:
            type: string
          type: array
        operator:
          default: AND
          description: Search operator.
          enum:
            - AND
            - OR
          type: string
      type: object
    PredictionFilters:
      properties:
        max:
          description: Upper bound of media prediction between [0, 1]
          example: 0.85
          type: number
        min:
          description: Lower bound of media prediction between [0, 1]
          example: 0.5
          type: number
      type: object
    UploadFilters:
      properties:
        media_types:
          items:
            description: Media Type
            example: VIDEO
            type: string
          type: array
      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
    KeywordFilters:
      properties:
        contain:
          items:
            type: string
          type: array
        not_contain:
          items:
            type: string
          type: array
      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

````