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

# List durable topics (Beta)



## OpenAPI

````yaml /api-reference/openapi.json get /v2/radar/topics
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: Trends Radar (Beta)
  - name: Breakout Topics
  - name: Taxonomy
paths:
  /v2/radar/topics:
    get:
      tags:
        - Trends Radar (Beta)
      summary: List durable topics (Beta)
      operationId: list_radar_topics_beta
      parameters:
        - name: lifecycle
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Lifecycle
        - name: program
          in: query
          required: false
          schema:
            const: general_market
            type: string
            default: general_market
            title: Program
        - name: persona
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Persona
        - name: entity
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Entity
        - name: brand_safety
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Brand Safety
        - name: platform
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Platform
        - name: min_size
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                minimum: 1
              - type: 'null'
            title: Min Size
        - name: since
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: 'null'
            title: Since
        - name: sort
          in: query
          required: false
          schema:
            enum:
              - rising
              - momentum
              - newest
              - value
              - freshness
              - size
            type: string
            default: rising
            title: Sort
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 25
            title: Limit
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            default: 0
            title: Offset
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RadarListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    RadarListResponse:
      properties:
        beta:
          type: string
          title: Beta
          description: Beta status caveat.
          default: >-
            Beta: response shapes may change and this surface may converge with
            /v2/trends.
        items:
          items:
            $ref: '#/components/schemas/RadarItem'
          type: array
          title: Items
          description: Items matching the query.
        total:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total
          description: Total items matching the filters, across all pages.
      type: object
      required:
        - items
      title: RadarListResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    RadarItem:
      properties:
        id:
          type: string
          title: Id
          description: Stable item identifier.
        type:
          type: string
          enum:
            - trend_moment
            - topic
            - entity_breakout
          title: Type
          description: >-
            trend_moment: a participatory trend moment. topic: a durable subject
            area. entity_breakout: a product or brand gaining attention.
        name:
          type: string
          title: Name
          description: Human-readable card title.
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: One-sentence summary of what the card covers.
        insight:
          anyOf:
            - type: string
            - type: 'null'
          title: Insight
          description: Analyst note on what is driving this right now.
        how_to_act:
          anyOf:
            - type: string
            - type: 'null'
          title: How To Act
          description: Suggested content, product, or campaign activation angle.
        brand_safety:
          anyOf:
            - type: string
            - type: 'null'
          title: Brand Safety
          description: 'Brand-safety assessment: safe, caution, unsafe.'
        lifecycle_state:
          anyOf:
            - type: string
            - type: 'null'
          title: Lifecycle State
          description: >-
            Where the card sits in its lifecycle: emerging, rising, peaking,
            steady, or declining.
        momentum_ratio:
          anyOf:
            - type: number
            - type: 'null'
          title: Momentum Ratio
          description: Recent activity relative to the card's own baseline.
        value_score:
          anyOf:
            - type: number
            - type: 'null'
          title: Value Score
          description: Composite quality/opportunity score.
        stats:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Stats
          description: >-
            Live evaluation stats: video and creator counts, freshness, audience
            and format composition, publishing activity, and the collection
            scope in which supporting videos were observed. Optional
            presentation_formats list caption-based format names and their
            evidence_basis: caption_label, caption_description, or mixed.
            Optional examples list sample videos with tiktok_id, url, caption,
            creator, views, published_at, and cover_url: a temporary image URL
            to load directly, or null when no image is available.
        personas:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Personas
          description: Audience personas this card serves, with strength.
        program:
          anyOf:
            - type: string
            - type: 'null'
          title: Program
          description: Market catalog this item belongs to.
        first_seen:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: First Seen
          description: When this item first appeared on the radar.
        last_updated:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Last Updated
          description: When this item's stats were last refreshed.
        archived:
          type: boolean
          title: Archived
          description: >-
            True when the item is no longer tracked; archived items are excluded
            from lists and search.
          default: false
      type: object
      required:
        - id
        - type
        - name
      title: RadarItem
      description: 'One card: a named slice of cultural activity with its live stats.'
    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
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.