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

# Similar Trends

> Find trends similar to a given trend via embedding similarity



## OpenAPI

````yaml /api-reference/openapi.json get /v2/trends/{trend_id}/similar
openapi: 3.1.0
info:
  title: Upriver API
  description: >-
    A social insights API for ad generation platforms. It provides structured
    signals, like psychographics, behavioral insights, trends, and audience
    language, to help AI models generate relevant, higher-converting ads.
  version: 1.0.0
servers:
  - url: https://api.upriver.ai
    description: Production API server
security: []
tags:
  - name: Brands
  - name: Products
  - name: Creators
  - name: Audience
  - name: Sponsorships
  - name: Trends
  - name: Breakout Topics
  - name: Taxonomy
paths:
  /v2/trends/{trend_id}/similar:
    get:
      tags:
        - Trends
      summary: Similar Trends
      description: Find trends similar to a given trend via embedding similarity
      operationId: trends_similar_v2
      parameters:
        - name: trend_id
          in: path
          required: true
          schema:
            type: string
            title: Trend Id
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 20
            minimum: 1
            default: 5
            title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimilarTrendsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    SimilarTrendsResponse:
      properties:
        results:
          items:
            $ref: '#/components/schemas/TrendMatchResult'
          type: array
          title: Results
          description: Similar trends ranked by similarity
        source_trend_id:
          type: string
          title: Source Trend Id
          description: The trend these are similar to
      type: object
      required:
        - results
        - source_trend_id
      title: SimilarTrendsResponse
      description: Response for GET /v2/trends/{id}/similar.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    TrendMatchResult:
      properties:
        trend:
          $ref: '#/components/schemas/BroadTrend'
        match_score:
          type: number
          title: Match Score
          description: Relevance score (0-1, higher is better)
        match_mode:
          type: string
          title: Match Mode
          description: Which matching strategy was used
      type: object
      required:
        - trend
        - match_score
        - match_mode
      title: TrendMatchResult
      description: A single matched trend with similarity score.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    BroadTrend:
      properties:
        title:
          type: string
          title: Title
          description: Short name of the trend
        summary:
          type: string
          title: Summary
          description: 1-3 sentences describing why it's culturally relevant
        uses_specific_sound:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Uses Specific Sound
          description: >-
            Whether the trend uses a specific recognizable sound, derived from
            dominant-sound evidence and signature-sound classification.
        participation_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Participation Type
          description: >-
            What the trend requires from creators: open, timed, lip_sync,
            choreography
        content_structure:
          anyOf:
            - type: string
            - type: 'null'
          title: Content Structure
          description: >-
            Shared non-audio pattern across videos: none (sound-led only), loose
            (shared theme/aesthetic without a repeatable template), or
            structured (repeatable text, editing, or visual template).
        has_text_template:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Has Text Template
          description: Whether videos share a repeatable text overlay pattern
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
          description: Stable trend identifier
        status:
          anyOf:
            - type: string
            - type: 'null'
          title: Status
          description: Trend status (e.g., active)
        video_samples:
          anyOf:
            - items: {}
              type: array
            - type: 'null'
          title: Video Samples
          description: Sample of video items [{url, media_key}]
        emerged_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Emerged At
          description: >-
            Timestamp when the trend first showed enough activity to be
            considered emerging. Drives the ordering of the 'emerging' sort
            mode.
        freshness_score:
          anyOf:
            - type: number
            - type: 'null'
          title: Freshness Score
          description: Freshness score (0-1) based on most recent evidence date
        timeliness_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Timeliness Status
          description: 'Timeliness status: recent/active/stale/cold'
        typical_duration_seconds:
          anyOf:
            - type: number
            - type: 'null'
          title: Typical Duration Seconds
          description: >-
            Representative content duration in seconds. For sound trends: the
            sound's duration. For other trends: median of video durations.
        tags:
          anyOf:
            - items:
                $ref: '#/components/schemas/TrendTag'
              type: array
            - type: 'null'
          title: Tags
          description: Tags associated with this trend
        brand_safety:
          anyOf:
            - type: string
            - type: 'null'
          title: Brand Safety
        commercial_music_approved:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Commercial Music Approved
          description: >-
            Whether the platform explicitly marked the sound as approved for
            commercial/business use. Omitted when unknown.
      type: object
      required:
        - title
        - summary
      title: BroadTrend
      description: A single broad cultural trend with social relevance.
    TrendTag:
      properties:
        tag_name:
          type: string
          title: Tag Name
          description: Tag label (e.g. 'Beauty', 'Comedy')
        strength:
          anyOf:
            - type: number
            - type: 'null'
          title: Strength
          description: Relevance strength of this tag (0-1)
        purpose:
          anyOf:
            - type: string
            - type: 'null'
          title: Purpose
          description: Why this tag applies to the trend
        rationale:
          anyOf:
            - type: string
            - type: 'null'
          title: Rationale
          description: Supporting rationale for the tag assignment
      type: object
      required:
        - tag_name
      title: TrendTag
      description: A tag attached to a trend (e.g., 'Beauty', 'Comedy').
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````