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

# Get a link preview



## OpenAPI

````yaml https://api.peekalink.io/mintlify post /
openapi: 3.0.3
info:
  title: Peekalink
  description: >-
    Peekalink API allows you to preview links and retrieve metadata like title,
    description, and snapshots. This is particularly useful for social media,
    bookmarking, and previewing services.
  version: 1.0.0
  contact:
    name: Peekalink
    url: https://peekalink.io
    email: hello@peekalink.io
servers:
  - url: https://api.peekalink.io
    description: Production server
security: []
tags:
  - name: Link Preview
    description: Endpoints related to link preview generation
  - name: Service Status
    description: Endpoints related to service status and monitoring
paths:
  /:
    post:
      tags:
        - Link Preview
      summary: Get a link preview
      operationId: postIndex
      parameters:
        - description: The language of the user
          schema:
            type: string
          in: header
          name: accept-language
          required: false
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkPreviewRequestBody'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LinkPreviewRequestBody'
          text/plain:
            schema:
              $ref: '#/components/schemas/LinkPreviewRequestBody'
      responses:
        '200':
          description: Successfully retrieved link preview
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
            multipart/form-data:
              schema:
                $ref: '#/components/schemas/Link'
            text/plain:
              schema:
                $ref: '#/components/schemas/Link'
        '400':
          description: Request was invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponseBody'
            multipart/form-data:
              schema:
                $ref: '#/components/schemas/APIErrorResponseBody'
            text/plain:
              schema:
                $ref: '#/components/schemas/APIErrorResponseBody'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponseBody'
            multipart/form-data:
              schema:
                $ref: '#/components/schemas/APIErrorResponseBody'
            text/plain:
              schema:
                $ref: '#/components/schemas/APIErrorResponseBody'
      security:
        - bearerAuth: []
components:
  schemas:
    LinkPreviewRequestBody:
      description: Request to generate a link preview
      type: object
      properties:
        link:
          format: url
          type: string
        source:
          default: API
          description: Source of the link preview request
          type: string
          enum:
            - API
            - WEB
        forceNewSnapshot:
          default: 'true'
          description: >-
            Only available to enterprise customers working on integrations.
            Every link is guaranteed fresh, this is just for debugging timing
            issues.
          type: string
          enum:
            - 'true'
            - 'false'
        forceNewSnapshotRecursive:
          default: 'true'
          description: >-
            Only available to enterprise customers working on integrations.
            Every link is guaranteed fresh, this is just for debugging timing
            issues.
          type: string
          enum:
            - 'true'
            - 'false'
      required:
        - link
    Link:
      description: Complete information about a link and its associated content
      type: object
      properties:
        id:
          description: Unique identifier for the link
          type: number
        ok:
          description: Whether the link is valid
          type: boolean
        requestId:
          description: Optional identifier for tracking the request
          type: string
        updatedAt:
          format: date-time
          description: Last update timestamp
          type: string
        url:
          description: Original URL
          type: string
        domain:
          description: Domain name from the URL
          type: string
        type:
          $ref: '#/components/schemas/APILinkType'
        status:
          description: HTTP status code
          type: number
        size:
          description: Content size in bytes
          type: number
        redirected:
          description: Whether the URL was redirected
          type: boolean
        redirectionUrl:
          description: Final URL after redirects
          type: string
        redirectionCount:
          description: Number of redirects
          type: number
        redirectionTrail:
          type: array
          items:
            description: Redirect URL
            type: string
        title:
          description: 'Page title (only missing when ok: false)'
          type: string
        description:
          description: 'Page description (only missing when ok: false)'
          type: string
        language:
          description: Content language code
          type: string
        icon:
          $ref: '#/components/schemas/Icon'
        image:
          $ref: '#/components/schemas/ResponsiveImage'
        video:
          $ref: '#/components/schemas/Video'
        audio:
          $ref: '#/components/schemas/Audio'
        document:
          $ref: '#/components/schemas/Document'
        text:
          $ref: '#/components/schemas/Text'
        page:
          $ref: '#/components/schemas/Page'
        youtubeVideo:
          $ref: '#/components/schemas/YouTubeVideo'
        youtubeUser:
          $ref: '#/components/schemas/YoutubeUser'
        xUser:
          $ref: '#/components/schemas/XUser'
        xPost:
          $ref: '#/components/schemas/XPost'
        instagramUser:
          $ref: '#/components/schemas/InstagramUser'
        instagramPost:
          $ref: '#/components/schemas/InstagramPost'
        amazonProduct:
          $ref: '#/components/schemas/AmazonProduct'
        etsyProduct:
          $ref: '#/components/schemas/EtsyProduct'
        tiktokUser:
          $ref: '#/components/schemas/TiktokUser'
        tiktokVideo:
          $ref: '#/components/schemas/TiktokVideo'
        redditUser:
          $ref: '#/components/schemas/RedditUser'
        redditSubreddit:
          $ref: '#/components/schemas/RedditSubreddit'
        redditPost:
          $ref: '#/components/schemas/RedditPost'
        githubRepository:
          $ref: '#/components/schemas/GithubRepository'
      required:
        - id
        - ok
        - updatedAt
        - url
        - domain
        - type
        - status
        - redirected
    APIErrorResponseBody:
      description: Standard error response format
      type: object
      properties:
        ok:
          description: Whether the request was successful (always false for errors)
          type: boolean
        status:
          description: HTTP status code of the error
          type: number
        error:
          description: Error type or category
          type: string
        errorCode:
          description: Machine-readable error code
          type: string
        message:
          description: Human-readable error message
          type: string
        details:
          description: Additional error details that can be either a string or an object
          anyOf:
            - description: Additional error details as a string
              type: string
            - description: Additional error details as an object with arbitrary properties
              additionalProperties: true
              type: object
              properties: {}
      required:
        - ok
        - status
    APILinkType:
      default: UNKNOWN
      description: Type of content the link represents
      type: string
      enum:
        - UNKNOWN
        - IMAGE
        - VIDEO
        - AUDIO
        - DOCUMENT
        - TEXT
        - PAGE
        - YOUTUBE_USER
        - X_USER
        - X_POST
        - INSTAGRAM_USER
        - INSTAGRAM_POST
        - YOUTUBE_VIDEO
        - AMAZON_PRODUCT
        - ETSY_PRODUCT
        - REDDIT_USER
        - REDDIT_POST
        - REDDIT_SUBREDDIT
        - TIKTOK_USER
        - TIKTOK_VIDEO
        - GITHUB_REPOSITORY
    Icon:
      description: Information about a website icon/favicon
      type: object
      properties:
        width:
          description: Width of the icon in pixels
          type: number
        height:
          description: Height of the icon in pixels
          type: number
        backgroundColor:
          description: Background color of the icon
          type: string
      required:
        - width
        - height
    ResponsiveImage:
      description: Collection of differently sized versions of an image
      type: object
      properties:
        thumbnail:
          $ref: '#/components/schemas/ImageAsset'
        medium:
          $ref: '#/components/schemas/ImageAsset'
        large:
          $ref: '#/components/schemas/ImageAsset'
        original:
          $ref: '#/components/schemas/ImageAsset'
      required:
        - thumbnail
        - medium
        - large
        - original
    Video:
      description: Detailed information about a video file
      type: object
      properties:
        name:
          description: Name of the video file
          type: string
        title:
          description: Title of the video
          type: string
        duration:
          description: Duration of the video in seconds
          type: number
        width:
          description: Width of the video in pixels
          type: number
        height:
          description: Height of the video in pixels
          type: number
        format:
          description: Video format/container type
          type: string
        size:
          description: Size of the video file in bytes
          type: number
        bitRate:
          description: Bitrate of the video in bits per second
          type: number
        frameRate:
          description: Frame rate of the video in frames per second
          type: number
        videoCodec:
          description: Codec used for video encoding
          type: string
        hasAudio:
          description: Whether the video has an audio track
          type: boolean
        author:
          description: Author/creator of the video
          type: string
        image:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        video:
          description: Video assets with different sizes
          type: object
          properties:
            thumbnail:
              type: object
              properties:
                width:
                  description: Width of the video in pixels
                  type: number
                height:
                  description: Height of the video in pixels
                  type: number
                url:
                  description: URL to access the video
                  type: string
              required:
                - width
                - height
                - url
          required:
            - thumbnail
        snapshots:
          type: array
          items:
            description: A snapshot from a video at a specific timestamp
            type: object
            properties:
              timestamp:
                description: Timestamp of the snapshot in seconds
                type: number
              image:
                description: Collection of differently sized versions of an image
                type: object
                properties:
                  thumbnail:
                    $ref: '#/components/schemas/ImageAsset'
                  medium:
                    $ref: '#/components/schemas/ImageAsset'
                  large:
                    $ref: '#/components/schemas/ImageAsset'
                  original:
                    $ref: '#/components/schemas/ImageAsset'
                required:
                  - thumbnail
                  - medium
                  - large
                  - original
            required:
              - timestamp
              - image
      required:
        - duration
        - size
        - frameRate
        - videoCodec
        - hasAudio
    Audio:
      description: Detailed information about an audio file
      type: object
      properties:
        duration:
          description: Duration of the audio in seconds
          type: number
        creationDate:
          format: date-time
          description: Creation date of the audio file
          type: string
        format:
          description: Audio format/container type
          type: string
        title:
          description: Title of the audio track
          type: string
        artist:
          description: Artist/creator of the audio
          type: string
        album:
          description: Album name if part of one
          type: string
        size:
          description: Size of the audio file in bytes
          type: number
        bitRate:
          description: Bitrate of the audio in bits per second
          type: number
        audioCodec:
          description: Codec used for audio encoding
          type: string
        sampleRate:
          description: Sample rate in Hz
          type: number
        channels:
          description: Number of audio channels
          type: number
        waveform:
          type: array
          items:
            description: Waveform data points
            type: number
        albumArtwork:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
      required:
        - duration
        - creationDate
        - size
        - bitRate
        - audioCodec
    Document:
      description: Detailed information about a document
      type: object
      properties:
        title:
          description: Title of the document
          type: string
        type:
          description: Document type/format
          type: string
        description:
          description: Description or summary of the document
          type: string
        estimatedReadingTime:
          description: Estimated reading time in minutes
          type: number
        rawTextUrl:
          description: URL to access the raw text content
          type: string
        image:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        pages:
          type: array
          items:
            description: Information about a single page in a document
            type: object
            properties:
              pageNumber:
                description: Page number in the document
                type: number
              screenshot:
                description: Collection of differently sized versions of an image
                type: object
                properties:
                  thumbnail:
                    $ref: '#/components/schemas/ImageAsset'
                  medium:
                    $ref: '#/components/schemas/ImageAsset'
                  large:
                    $ref: '#/components/schemas/ImageAsset'
                  original:
                    $ref: '#/components/schemas/ImageAsset'
                required:
                  - thumbnail
                  - medium
                  - large
                  - original
            required:
              - pageNumber
        pageCount:
          description: Total number of pages
          type: number
        author:
          description: Author of the document
          type: string
        isEncrypted:
          description: Whether the document is encrypted
          type: boolean
        lastModified:
          format: date-time
          description: Last modification date
          type: string
        language:
          description: Document language code
          type: string
      required:
        - title
        - pageCount
        - isEncrypted
    Text:
      description: Information about plain text content
      type: object
      properties:
        size:
          description: Size of the text content in bytes
          type: number
        estimatedReadingTime:
          description: Estimated reading time in minutes
          type: number
        rawTextUrl:
          description: URL to access the raw text content
          type: string
        image:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
    Page:
      description: Information about a web page
      type: object
      properties:
        estimatedReadingTimeInMinutes:
          description: Estimated reading time in minutes
          type: number
        screenshot:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        htmlUrl:
          description: URL to access the HTML version
          type: string
        markdownUrl:
          description: URL to access the Markdown version
          type: string
        rawTextUrl:
          description: URL to access the raw text content
          type: string
    YouTubeVideo:
      description: Information about a YouTube video
      type: object
      properties:
        id:
          description: Unique identifier for the video
          type: number
        videoId:
          description: YouTube video ID
          type: string
        user:
          $ref: '#/components/schemas/YoutubeUser'
        publishedAt:
          format: date-time
          description: Publication date
          type: string
        title:
          description: Video title
          type: string
        description:
          description: Video description
          type: string
        duration:
          description: Video duration in seconds
          type: number
        viewsCount:
          description: Number of views
          type: number
        likesCount:
          description: Number of likes
          type: number
        dislikesCount:
          description: Number of dislikes
          type: number
        rating:
          description: Video rating
          type: number
        commentsCount:
          description: Number of comments
          type: number
        thumbnail:
          $ref: '#/components/schemas/ResponsiveImage'
      required:
        - id
        - videoId
    YoutubeUser:
      description: Information about a YouTube channel
      type: object
      properties:
        id:
          description: Unique identifier for the YouTube user
          type: number
        username:
          description: YouTube username
          type: string
        name:
          description: Display name
          type: string
        avatar:
          $ref: '#/components/schemas/ResponsiveImage'
        banner:
          $ref: '#/components/schemas/ResponsiveImage'
        description:
          description: Channel description
          type: string
        subscribersCount:
          description: Number of subscribers
          type: number
        videosCount:
          description: Number of uploaded videos
          type: number
        viewsCount:
          description: Total channel views
          type: number
        joinedAt:
          format: date-time
          description: Channel creation date
          type: string
        visibility:
          $ref: '#/components/schemas/Visibility'
        externalId:
          description: External YouTube channel ID
          type: string
        url:
          description: Channel URL
          type: string
        isFamilySafe:
          description: Whether content is family-safe
          type: boolean
        verified:
          description: Whether channel is verified
          type: boolean
      required:
        - id
        - username
    XUser:
      description: Information about an X (formerly Twitter) user
      type: object
      properties:
        id:
          description: Unique identifier for the X user
          type: number
        username:
          description: X username
          type: string
        name:
          description: Display name
          type: string
        avatar:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        cover:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        bio:
          description: User biography
          type: string
        verified:
          description: Whether the user is verified
          type: boolean
        followersCount:
          description: Number of followers
          type: number
        followingCount:
          description: Number of accounts following
          type: number
        postsCount:
          description: Number of posts
          type: number
        url:
          description: Website URL
          type: string
        location:
          description: User location
          type: string
        joinedAt:
          format: date-time
          description: Account creation date
          type: string
        protected:
          description: Whether the account is protected
          type: boolean
        sensitive:
          description: Whether the account contains sensitive content
          type: boolean
      required:
        - id
    XPost:
      description: Information about an X (formerly Twitter) post
      type: object
      properties:
        id:
          description: Unique identifier for the X post
          type: number
        createdAt:
          format: date-time
          description: Post creation date
          type: string
        updatedAt:
          format: date-time
          description: Post last update date
          type: string
        user:
          description: Information about an X (formerly Twitter) user
          type: object
          properties:
            id:
              description: Unique identifier for the X user
              type: number
            username:
              description: X username
              type: string
            name:
              description: Display name
              type: string
            avatar:
              description: Collection of differently sized versions of an image
              type: object
              properties:
                thumbnail:
                  $ref: '#/components/schemas/ImageAsset'
                medium:
                  $ref: '#/components/schemas/ImageAsset'
                large:
                  $ref: '#/components/schemas/ImageAsset'
                original:
                  $ref: '#/components/schemas/ImageAsset'
              required:
                - thumbnail
                - medium
                - large
                - original
            cover:
              description: Collection of differently sized versions of an image
              type: object
              properties:
                thumbnail:
                  $ref: '#/components/schemas/ImageAsset'
                medium:
                  $ref: '#/components/schemas/ImageAsset'
                large:
                  $ref: '#/components/schemas/ImageAsset'
                original:
                  $ref: '#/components/schemas/ImageAsset'
              required:
                - thumbnail
                - medium
                - large
                - original
            bio:
              description: User biography
              type: string
            verified:
              description: Whether the user is verified
              type: boolean
            followersCount:
              description: Number of followers
              type: number
            followingCount:
              description: Number of accounts following
              type: number
            postsCount:
              description: Number of posts
              type: number
            url:
              description: Website URL
              type: string
            location:
              description: User location
              type: string
            joinedAt:
              format: date-time
              description: Account creation date
              type: string
            protected:
              description: Whether the account is protected
              type: boolean
            sensitive:
              description: Whether the account contains sensitive content
              type: boolean
          required:
            - id
        publishedAt:
          format: date-time
          description: Post publication date
          type: string
        text:
          description: Post content
          type: string
        media:
          type: array
          items:
            anyOf:
              - description: Detailed information about a video file
                type: object
                properties:
                  name:
                    description: Name of the video file
                    type: string
                  title:
                    description: Title of the video
                    type: string
                  duration:
                    description: Duration of the video in seconds
                    type: number
                  width:
                    description: Width of the video in pixels
                    type: number
                  height:
                    description: Height of the video in pixels
                    type: number
                  format:
                    description: Video format/container type
                    type: string
                  size:
                    description: Size of the video file in bytes
                    type: number
                  bitRate:
                    description: Bitrate of the video in bits per second
                    type: number
                  frameRate:
                    description: Frame rate of the video in frames per second
                    type: number
                  videoCodec:
                    description: Codec used for video encoding
                    type: string
                  hasAudio:
                    description: Whether the video has an audio track
                    type: boolean
                  author:
                    description: Author/creator of the video
                    type: string
                  image:
                    description: Collection of differently sized versions of an image
                    type: object
                    properties:
                      thumbnail:
                        $ref: '#/components/schemas/ImageAsset'
                      medium:
                        $ref: '#/components/schemas/ImageAsset'
                      large:
                        $ref: '#/components/schemas/ImageAsset'
                      original:
                        $ref: '#/components/schemas/ImageAsset'
                    required:
                      - thumbnail
                      - medium
                      - large
                      - original
                  video:
                    description: Video assets with different sizes
                    type: object
                    properties:
                      thumbnail:
                        type: object
                        properties:
                          width:
                            description: Width of the video in pixels
                            type: number
                          height:
                            description: Height of the video in pixels
                            type: number
                          url:
                            description: URL to access the video
                            type: string
                        required:
                          - width
                          - height
                          - url
                    required:
                      - thumbnail
                  snapshots:
                    type: array
                    items:
                      description: A snapshot from a video at a specific timestamp
                      type: object
                      properties:
                        timestamp:
                          description: Timestamp of the snapshot in seconds
                          type: number
                        image:
                          description: Collection of differently sized versions of an image
                          type: object
                          properties:
                            thumbnail:
                              $ref: '#/components/schemas/ImageAsset'
                            medium:
                              $ref: '#/components/schemas/ImageAsset'
                            large:
                              $ref: '#/components/schemas/ImageAsset'
                            original:
                              $ref: '#/components/schemas/ImageAsset'
                          required:
                            - thumbnail
                            - medium
                            - large
                            - original
                      required:
                        - timestamp
                        - image
                required:
                  - duration
                  - size
                  - frameRate
                  - videoCodec
                  - hasAudio
              - description: >-
                  Detailed information about an image file including color
                  analysis
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  size:
                    description: Size of the image file in bytes
                    type: number
                  format:
                    description: Image format (e.g., JPEG, PNG)
                    type: string
                  hasAlphaChannel:
                    description: Whether the image has transparency
                    type: boolean
                  thumbnail:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  medium:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  large:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  original:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                required:
                  - width
                  - height
                  - size
                  - format
                  - hasAlphaChannel
                  - thumbnail
                  - medium
                  - large
                  - original
        likesCount:
          description: Number of likes
          type: number
        commentsCount:
          description: Number of comments
          type: number
        viewsCount:
          description: Number of views
          type: number
        bookmarksCount:
          description: Number of bookmarks
          type: number
        repostsCount:
          description: Number of reposts
          type: number
        quotesCount:
          description: Number of quote posts
          type: number
      required:
        - id
    InstagramUser:
      description: Information about an Instagram user
      type: object
      properties:
        id:
          description: Unique identifier for the Instagram user
          type: number
        username:
          description: Instagram username
          type: string
        name:
          description: Display name
          type: string
        avatar:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        bio:
          description: User biography
          type: string
        url:
          description: Website URL
          type: string
        followersCount:
          description: Number of followers
          type: number
        followingCount:
          description: Number of accounts following
          type: number
        postsCount:
          description: Number of posts
          type: number
        visibility:
          default: PUBLIC
          description: Account visibility
          type: string
          enum:
            - PUBLIC
            - PRIVATE
        verified:
          description: Whether the account is verified
          type: boolean
      required:
        - id
        - username
        - verified
    InstagramPost:
      description: Information about an Instagram post
      type: object
      properties:
        id:
          description: Unique identifier for the Instagram post
          type: number
        user:
          description: Information about an Instagram user
          type: object
          properties:
            id:
              description: Unique identifier for the Instagram user
              type: number
            username:
              description: Instagram username
              type: string
            name:
              description: Display name
              type: string
            avatar:
              description: Collection of differently sized versions of an image
              type: object
              properties:
                thumbnail:
                  $ref: '#/components/schemas/ImageAsset'
                medium:
                  $ref: '#/components/schemas/ImageAsset'
                large:
                  $ref: '#/components/schemas/ImageAsset'
                original:
                  $ref: '#/components/schemas/ImageAsset'
              required:
                - thumbnail
                - medium
                - large
                - original
            bio:
              description: User biography
              type: string
            url:
              description: Website URL
              type: string
            followersCount:
              description: Number of followers
              type: number
            followingCount:
              description: Number of accounts following
              type: number
            postsCount:
              description: Number of posts
              type: number
            visibility:
              default: PUBLIC
              description: Account visibility
              type: string
              enum:
                - PUBLIC
                - PRIVATE
            verified:
              description: Whether the account is verified
              type: boolean
          required:
            - id
            - username
            - verified
        publishedAt:
          format: date-time
          description: Post publication date
          type: string
        text:
          description: Post caption
          type: string
        media:
          type: array
          items:
            anyOf:
              - description: >-
                  Detailed information about an image file including color
                  analysis
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  size:
                    description: Size of the image file in bytes
                    type: number
                  format:
                    description: Image format (e.g., JPEG, PNG)
                    type: string
                  hasAlphaChannel:
                    description: Whether the image has transparency
                    type: boolean
                  thumbnail:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  medium:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  large:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  original:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                required:
                  - width
                  - height
                  - size
                  - format
                  - hasAlphaChannel
                  - thumbnail
                  - medium
                  - large
                  - original
              - description: Detailed information about a video file
                type: object
                properties:
                  name:
                    description: Name of the video file
                    type: string
                  title:
                    description: Title of the video
                    type: string
                  duration:
                    description: Duration of the video in seconds
                    type: number
                  width:
                    description: Width of the video in pixels
                    type: number
                  height:
                    description: Height of the video in pixels
                    type: number
                  format:
                    description: Video format/container type
                    type: string
                  size:
                    description: Size of the video file in bytes
                    type: number
                  bitRate:
                    description: Bitrate of the video in bits per second
                    type: number
                  frameRate:
                    description: Frame rate of the video in frames per second
                    type: number
                  videoCodec:
                    description: Codec used for video encoding
                    type: string
                  hasAudio:
                    description: Whether the video has an audio track
                    type: boolean
                  author:
                    description: Author/creator of the video
                    type: string
                  image:
                    description: Collection of differently sized versions of an image
                    type: object
                    properties:
                      thumbnail:
                        $ref: '#/components/schemas/ImageAsset'
                      medium:
                        $ref: '#/components/schemas/ImageAsset'
                      large:
                        $ref: '#/components/schemas/ImageAsset'
                      original:
                        $ref: '#/components/schemas/ImageAsset'
                    required:
                      - thumbnail
                      - medium
                      - large
                      - original
                  video:
                    description: Video assets with different sizes
                    type: object
                    properties:
                      thumbnail:
                        type: object
                        properties:
                          width:
                            description: Width of the video in pixels
                            type: number
                          height:
                            description: Height of the video in pixels
                            type: number
                          url:
                            description: URL to access the video
                            type: string
                        required:
                          - width
                          - height
                          - url
                    required:
                      - thumbnail
                  snapshots:
                    type: array
                    items:
                      description: A snapshot from a video at a specific timestamp
                      type: object
                      properties:
                        timestamp:
                          description: Timestamp of the snapshot in seconds
                          type: number
                        image:
                          description: Collection of differently sized versions of an image
                          type: object
                          properties:
                            thumbnail:
                              $ref: '#/components/schemas/ImageAsset'
                            medium:
                              $ref: '#/components/schemas/ImageAsset'
                            large:
                              $ref: '#/components/schemas/ImageAsset'
                            original:
                              $ref: '#/components/schemas/ImageAsset'
                          required:
                            - thumbnail
                            - medium
                            - large
                            - original
                      required:
                        - timestamp
                        - image
                required:
                  - duration
                  - size
                  - frameRate
                  - videoCodec
                  - hasAudio
        likesCount:
          description: Number of likes
          type: number
        commentsCount:
          description: Number of comments
          type: number
      required:
        - id
        - publishedAt
    AmazonProduct:
      description: Information about an Amazon product
      type: object
      properties:
        productId:
          description: Amazon product identifier
          type: string
        title:
          description: Product title
          type: string
        description:
          description: Product description
          type: string
        price:
          description: Product price
          type: number
        currency:
          description: Price currency code
          type: string
        rating:
          description: Product rating
          type: number
        reviewCount:
          description: Number of reviews
          type: number
        features:
          type: array
          items:
            description: Product feature
            type: string
        media:
          type: array
          items:
            description: Detailed information about an image file including color analysis
            type: object
            properties:
              width:
                description: Width of the image in pixels
                type: number
              height:
                description: Height of the image in pixels
                type: number
              size:
                description: Size of the image file in bytes
                type: number
              format:
                description: Image format (e.g., JPEG, PNG)
                type: string
              hasAlphaChannel:
                description: Whether the image has transparency
                type: boolean
              thumbnail:
                description: Information about an image asset
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  url:
                    description: URL to access the image
                    type: string
                required:
                  - width
                  - height
                  - url
              medium:
                description: Information about an image asset
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  url:
                    description: URL to access the image
                    type: string
                required:
                  - width
                  - height
                  - url
              large:
                description: Information about an image asset
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  url:
                    description: URL to access the image
                    type: string
                required:
                  - width
                  - height
                  - url
              original:
                description: Information about an image asset
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  url:
                    description: URL to access the image
                    type: string
                required:
                  - width
                  - height
                  - url
            required:
              - width
              - height
              - size
              - format
              - hasAlphaChannel
              - thumbnail
              - medium
              - large
              - original
      required:
        - productId
    EtsyProduct:
      description: Information about an Etsy product
      type: object
      properties:
        productId:
          description: Etsy product identifier
          type: string
        title:
          description: Product title
          type: string
        description:
          description: Product description
          type: string
        price:
          description: Product price
          type: number
        currency:
          description: Price currency code
          type: string
        rating:
          description: Product rating
          type: number
        reviewCount:
          description: Number of reviews
          type: number
        media:
          type: array
          items:
            description: Detailed information about an image file including color analysis
            type: object
            properties:
              width:
                description: Width of the image in pixels
                type: number
              height:
                description: Height of the image in pixels
                type: number
              size:
                description: Size of the image file in bytes
                type: number
              format:
                description: Image format (e.g., JPEG, PNG)
                type: string
              hasAlphaChannel:
                description: Whether the image has transparency
                type: boolean
              thumbnail:
                description: Information about an image asset
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  url:
                    description: URL to access the image
                    type: string
                required:
                  - width
                  - height
                  - url
              medium:
                description: Information about an image asset
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  url:
                    description: URL to access the image
                    type: string
                required:
                  - width
                  - height
                  - url
              large:
                description: Information about an image asset
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  url:
                    description: URL to access the image
                    type: string
                required:
                  - width
                  - height
                  - url
              original:
                description: Information about an image asset
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  url:
                    description: URL to access the image
                    type: string
                required:
                  - width
                  - height
                  - url
            required:
              - width
              - height
              - size
              - format
              - hasAlphaChannel
              - thumbnail
              - medium
              - large
              - original
      required:
        - productId
    TiktokUser:
      description: Information about a TikTok user
      type: object
      properties:
        id:
          description: Unique identifier for the TikTok user
          type: number
        username:
          description: TikTok username
          type: string
        name:
          description: Display name
          type: string
        avatar:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        bio:
          description: User biography
          type: string
        url:
          description: Profile URL
          type: string
        followersCount:
          description: Number of followers
          type: number
        followingCount:
          description: Number of accounts following
          type: number
        likesCount:
          description: Number of likes received
          type: number
        visibility:
          default: PUBLIC
          description: Account visibility
          type: string
          enum:
            - PUBLIC
            - PRIVATE
        verified:
          description: Whether the account is verified
          type: boolean
      required:
        - id
        - username
        - verified
    TiktokVideo:
      description: Information about a TikTok video
      type: object
      properties:
        id:
          description: Unique identifier for the TikTok video
          type: number
        user:
          description: Information about a TikTok user
          type: object
          properties:
            id:
              description: Unique identifier for the TikTok user
              type: number
            username:
              description: TikTok username
              type: string
            name:
              description: Display name
              type: string
            avatar:
              description: Collection of differently sized versions of an image
              type: object
              properties:
                thumbnail:
                  $ref: '#/components/schemas/ImageAsset'
                medium:
                  $ref: '#/components/schemas/ImageAsset'
                large:
                  $ref: '#/components/schemas/ImageAsset'
                original:
                  $ref: '#/components/schemas/ImageAsset'
              required:
                - thumbnail
                - medium
                - large
                - original
            bio:
              description: User biography
              type: string
            url:
              description: Profile URL
              type: string
            followersCount:
              description: Number of followers
              type: number
            followingCount:
              description: Number of accounts following
              type: number
            likesCount:
              description: Number of likes received
              type: number
            visibility:
              default: PUBLIC
              description: Account visibility
              type: string
              enum:
                - PUBLIC
                - PRIVATE
            verified:
              description: Whether the account is verified
              type: boolean
          required:
            - id
            - username
            - verified
        publishedAt:
          format: date-time
          description: Video publication date
          type: string
        text:
          description: Video caption
          type: string
        media:
          type: array
          items:
            anyOf:
              - description: >-
                  Detailed information about an image file including color
                  analysis
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  size:
                    description: Size of the image file in bytes
                    type: number
                  format:
                    description: Image format (e.g., JPEG, PNG)
                    type: string
                  hasAlphaChannel:
                    description: Whether the image has transparency
                    type: boolean
                  thumbnail:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  medium:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  large:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  original:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                required:
                  - width
                  - height
                  - size
                  - format
                  - hasAlphaChannel
                  - thumbnail
                  - medium
                  - large
                  - original
              - description: Detailed information about a video file
                type: object
                properties:
                  name:
                    description: Name of the video file
                    type: string
                  title:
                    description: Title of the video
                    type: string
                  duration:
                    description: Duration of the video in seconds
                    type: number
                  width:
                    description: Width of the video in pixels
                    type: number
                  height:
                    description: Height of the video in pixels
                    type: number
                  format:
                    description: Video format/container type
                    type: string
                  size:
                    description: Size of the video file in bytes
                    type: number
                  bitRate:
                    description: Bitrate of the video in bits per second
                    type: number
                  frameRate:
                    description: Frame rate of the video in frames per second
                    type: number
                  videoCodec:
                    description: Codec used for video encoding
                    type: string
                  hasAudio:
                    description: Whether the video has an audio track
                    type: boolean
                  author:
                    description: Author/creator of the video
                    type: string
                  image:
                    description: Collection of differently sized versions of an image
                    type: object
                    properties:
                      thumbnail:
                        $ref: '#/components/schemas/ImageAsset'
                      medium:
                        $ref: '#/components/schemas/ImageAsset'
                      large:
                        $ref: '#/components/schemas/ImageAsset'
                      original:
                        $ref: '#/components/schemas/ImageAsset'
                    required:
                      - thumbnail
                      - medium
                      - large
                      - original
                  video:
                    description: Video assets with different sizes
                    type: object
                    properties:
                      thumbnail:
                        type: object
                        properties:
                          width:
                            description: Width of the video in pixels
                            type: number
                          height:
                            description: Height of the video in pixels
                            type: number
                          url:
                            description: URL to access the video
                            type: string
                        required:
                          - width
                          - height
                          - url
                    required:
                      - thumbnail
                  snapshots:
                    type: array
                    items:
                      description: A snapshot from a video at a specific timestamp
                      type: object
                      properties:
                        timestamp:
                          description: Timestamp of the snapshot in seconds
                          type: number
                        image:
                          description: Collection of differently sized versions of an image
                          type: object
                          properties:
                            thumbnail:
                              $ref: '#/components/schemas/ImageAsset'
                            medium:
                              $ref: '#/components/schemas/ImageAsset'
                            large:
                              $ref: '#/components/schemas/ImageAsset'
                            original:
                              $ref: '#/components/schemas/ImageAsset'
                          required:
                            - thumbnail
                            - medium
                            - large
                            - original
                      required:
                        - timestamp
                        - image
                required:
                  - duration
                  - size
                  - frameRate
                  - videoCodec
                  - hasAudio
        likesCount:
          description: Number of likes
          type: number
        commentsCount:
          description: Number of comments
          type: number
        playsCount:
          description: Number of plays
          type: number
        sharesCount:
          description: Number of shares
          type: number
      required:
        - id
    RedditUser:
      description: Information about a Reddit user
      type: object
      properties:
        id:
          description: Unique identifier for the Reddit user
          type: number
        username:
          description: Reddit username
          type: string
        name:
          description: Display name
          type: string
        flattenedAvatar:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        avatar:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        avatarBackground:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        banner:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        bio:
          description: User biography
          type: string
        karma:
          description: Total karma points
          type: number
        postKarma:
          description: Post karma points
          type: number
        commentKarma:
          description: Comment karma points
          type: number
        joinedAt:
          format: date-time
          description: Account creation date
          type: string
      required:
        - id
        - username
    RedditSubreddit:
      description: Information about a Reddit subreddit
      type: object
      properties:
        id:
          description: Unique identifier for the subreddit
          type: number
        name:
          description: Subreddit name
          type: string
        title:
          description: Subreddit title
          type: string
        description:
          description: Subreddit description
          type: string
        subscribersCount:
          description: Number of subscribers
          type: number
        activeUsersCount:
          description: Number of active users
          type: number
        createdDate:
          format: date-time
          description: Subreddit creation date
          type: string
        type:
          description: Subreddit type
          type: string
        nsfw:
          description: Whether the subreddit is NSFW
          type: boolean
        banner:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
        avatar:
          description: Collection of differently sized versions of an image
          type: object
          properties:
            thumbnail:
              $ref: '#/components/schemas/ImageAsset'
            medium:
              $ref: '#/components/schemas/ImageAsset'
            large:
              $ref: '#/components/schemas/ImageAsset'
            original:
              $ref: '#/components/schemas/ImageAsset'
          required:
            - thumbnail
            - medium
            - large
            - original
      required:
        - id
        - name
    RedditPost:
      description: Information about a Reddit post
      type: object
      properties:
        id:
          description: Unique identifier for the Reddit post
          type: number
        xId:
          description: External identifier for the post
          type: string
        createdAt:
          format: date-time
          description: Post creation date
          type: string
        updatedAt:
          format: date-time
          description: Post last update date
          type: string
        user:
          description: Information about a Reddit user
          type: object
          properties:
            id:
              description: Unique identifier for the Reddit user
              type: number
            username:
              description: Reddit username
              type: string
            name:
              description: Display name
              type: string
            flattenedAvatar:
              description: Collection of differently sized versions of an image
              type: object
              properties:
                thumbnail:
                  $ref: '#/components/schemas/ImageAsset'
                medium:
                  $ref: '#/components/schemas/ImageAsset'
                large:
                  $ref: '#/components/schemas/ImageAsset'
                original:
                  $ref: '#/components/schemas/ImageAsset'
              required:
                - thumbnail
                - medium
                - large
                - original
            avatar:
              description: Collection of differently sized versions of an image
              type: object
              properties:
                thumbnail:
                  $ref: '#/components/schemas/ImageAsset'
                medium:
                  $ref: '#/components/schemas/ImageAsset'
                large:
                  $ref: '#/components/schemas/ImageAsset'
                original:
                  $ref: '#/components/schemas/ImageAsset'
              required:
                - thumbnail
                - medium
                - large
                - original
            avatarBackground:
              description: Collection of differently sized versions of an image
              type: object
              properties:
                thumbnail:
                  $ref: '#/components/schemas/ImageAsset'
                medium:
                  $ref: '#/components/schemas/ImageAsset'
                large:
                  $ref: '#/components/schemas/ImageAsset'
                original:
                  $ref: '#/components/schemas/ImageAsset'
              required:
                - thumbnail
                - medium
                - large
                - original
            banner:
              description: Collection of differently sized versions of an image
              type: object
              properties:
                thumbnail:
                  $ref: '#/components/schemas/ImageAsset'
                medium:
                  $ref: '#/components/schemas/ImageAsset'
                large:
                  $ref: '#/components/schemas/ImageAsset'
                original:
                  $ref: '#/components/schemas/ImageAsset'
              required:
                - thumbnail
                - medium
                - large
                - original
            bio:
              description: User biography
              type: string
            karma:
              description: Total karma points
              type: number
            postKarma:
              description: Post karma points
              type: number
            commentKarma:
              description: Comment karma points
              type: number
            joinedAt:
              format: date-time
              description: Account creation date
              type: string
          required:
            - id
            - username
        subreddit:
          description: Information about a Reddit subreddit
          type: object
          properties:
            id:
              description: Unique identifier for the subreddit
              type: number
            name:
              description: Subreddit name
              type: string
            title:
              description: Subreddit title
              type: string
            description:
              description: Subreddit description
              type: string
            subscribersCount:
              description: Number of subscribers
              type: number
            activeUsersCount:
              description: Number of active users
              type: number
            createdDate:
              format: date-time
              description: Subreddit creation date
              type: string
            type:
              description: Subreddit type
              type: string
            nsfw:
              description: Whether the subreddit is NSFW
              type: boolean
            banner:
              description: Collection of differently sized versions of an image
              type: object
              properties:
                thumbnail:
                  $ref: '#/components/schemas/ImageAsset'
                medium:
                  $ref: '#/components/schemas/ImageAsset'
                large:
                  $ref: '#/components/schemas/ImageAsset'
                original:
                  $ref: '#/components/schemas/ImageAsset'
              required:
                - thumbnail
                - medium
                - large
                - original
            avatar:
              description: Collection of differently sized versions of an image
              type: object
              properties:
                thumbnail:
                  $ref: '#/components/schemas/ImageAsset'
                medium:
                  $ref: '#/components/schemas/ImageAsset'
                large:
                  $ref: '#/components/schemas/ImageAsset'
                original:
                  $ref: '#/components/schemas/ImageAsset'
              required:
                - thumbnail
                - medium
                - large
                - original
          required:
            - id
            - name
        publishedAt:
          format: date-time
          description: Post publication date
          type: string
        text:
          description: Post content
          type: string
        likesCount:
          description: Number of upvotes
          type: number
        commentsCount:
          description: Number of comments
          type: number
        type:
          default: IMAGE
          description: Type of Reddit post
          type: string
          enum:
            - IMAGE
            - GALLERY
            - VIDEO
            - LINK
            - TEXT
            - POLL
            - CROSSPOST
            - MULTI_MEDIA
            - LIVE
        media:
          type: array
          items:
            anyOf:
              - description: Detailed information about a video file
                type: object
                properties:
                  name:
                    description: Name of the video file
                    type: string
                  title:
                    description: Title of the video
                    type: string
                  duration:
                    description: Duration of the video in seconds
                    type: number
                  width:
                    description: Width of the video in pixels
                    type: number
                  height:
                    description: Height of the video in pixels
                    type: number
                  format:
                    description: Video format/container type
                    type: string
                  size:
                    description: Size of the video file in bytes
                    type: number
                  bitRate:
                    description: Bitrate of the video in bits per second
                    type: number
                  frameRate:
                    description: Frame rate of the video in frames per second
                    type: number
                  videoCodec:
                    description: Codec used for video encoding
                    type: string
                  hasAudio:
                    description: Whether the video has an audio track
                    type: boolean
                  author:
                    description: Author/creator of the video
                    type: string
                  image:
                    description: Collection of differently sized versions of an image
                    type: object
                    properties:
                      thumbnail:
                        $ref: '#/components/schemas/ImageAsset'
                      medium:
                        $ref: '#/components/schemas/ImageAsset'
                      large:
                        $ref: '#/components/schemas/ImageAsset'
                      original:
                        $ref: '#/components/schemas/ImageAsset'
                    required:
                      - thumbnail
                      - medium
                      - large
                      - original
                  video:
                    description: Video assets with different sizes
                    type: object
                    properties:
                      thumbnail:
                        type: object
                        properties:
                          width:
                            description: Width of the video in pixels
                            type: number
                          height:
                            description: Height of the video in pixels
                            type: number
                          url:
                            description: URL to access the video
                            type: string
                        required:
                          - width
                          - height
                          - url
                    required:
                      - thumbnail
                  snapshots:
                    type: array
                    items:
                      description: A snapshot from a video at a specific timestamp
                      type: object
                      properties:
                        timestamp:
                          description: Timestamp of the snapshot in seconds
                          type: number
                        image:
                          description: Collection of differently sized versions of an image
                          type: object
                          properties:
                            thumbnail:
                              $ref: '#/components/schemas/ImageAsset'
                            medium:
                              $ref: '#/components/schemas/ImageAsset'
                            large:
                              $ref: '#/components/schemas/ImageAsset'
                            original:
                              $ref: '#/components/schemas/ImageAsset'
                          required:
                            - thumbnail
                            - medium
                            - large
                            - original
                      required:
                        - timestamp
                        - image
                required:
                  - duration
                  - size
                  - frameRate
                  - videoCodec
                  - hasAudio
              - description: >-
                  Detailed information about an image file including color
                  analysis
                type: object
                properties:
                  width:
                    description: Width of the image in pixels
                    type: number
                  height:
                    description: Height of the image in pixels
                    type: number
                  size:
                    description: Size of the image file in bytes
                    type: number
                  format:
                    description: Image format (e.g., JPEG, PNG)
                    type: string
                  hasAlphaChannel:
                    description: Whether the image has transparency
                    type: boolean
                  thumbnail:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  medium:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  large:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                  original:
                    description: Information about an image asset
                    type: object
                    properties:
                      width:
                        description: Width of the image in pixels
                        type: number
                      height:
                        description: Height of the image in pixels
                        type: number
                      url:
                        description: URL to access the image
                        type: string
                    required:
                      - width
                      - height
                      - url
                required:
                  - width
                  - height
                  - size
                  - format
                  - hasAlphaChannel
                  - thumbnail
                  - medium
                  - large
                  - original
      required:
        - id
        - xId
        - createdAt
        - updatedAt
    GithubRepository:
      description: Detailed information about a GitHub repository
      type: object
      properties:
        id:
          description: Unique identifier for the repository
          type: number
        name:
          description: Repository name
          type: string
        owner:
          description: Basic GitHub user information
          type: object
          properties:
            id:
              description: Unique identifier for the GitHub user
              type: number
            username:
              description: GitHub username
              type: string
          required:
            - id
            - username
        description:
          description: Repository description
          type: string
        starsCount:
          description: Number of stars
          type: number
        contributorsCount:
          description: Number of contributors
          type: number
        watchersCount:
          description: Number of watchers
          type: number
        commitsCount:
          description: Number of commits
          type: number
        forksCount:
          description: Number of forks
          type: number
        issuesCount:
          description: Number of open issues
          type: number
        pullRequestsCount:
          description: Number of open pull requests
          type: number
        languages:
          type: array
          items:
            description: Information about a programming language in a repository
            type: object
            properties:
              name:
                description: Programming language name
                type: string
              color:
                description: Language color code
                type: string
              percentage:
                description: Percentage of code in this language
                type: number
            required:
              - name
              - color
              - percentage
        topics:
          type: array
          items:
            description: Repository topic
            type: string
        lastCommitDate:
          format: date-time
          description: Date of last commit
          type: string
      required:
        - id
        - name
    ImageAsset:
      description: Information about an image asset
      type: object
      properties:
        width:
          description: Width of the image in pixels
          type: number
        height:
          description: Height of the image in pixels
          type: number
        url:
          description: URL to access the image
          type: string
      required:
        - width
        - height
        - url
    Visibility:
      default: PUBLIC
      description: Visibility status of the content
      type: string
      enum:
        - PUBLIC
        - PRIVATE
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````