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

# Get Brand Intelligence Social Own Insights Route

> Organic-social analysis of this brand's OWN public channels.

A separate route rather than a subject flag on the competitor endpoint,
because the own subject carries no client-supplied cohort: the service
derives the domain from the ``Brand`` row and rejects anything else.
Same response model, same eight panels -- own-brand snapshots are
stored with ``competitor_domain = brand_domain``, so only the ownership
gate differs.



## OpenAPI

````yaml /openapi.json post /api/v1/brands/{brand_id}/brand-intelligence/social-own-insights
openapi: 3.1.0
info:
  title: AITasker
  version: 0.1.0
servers: []
security: []
paths:
  /api/v1/brands/{brand_id}/brand-intelligence/social-own-insights:
    post:
      tags:
        - Brand Intelligence
        - Brand Intelligence
      summary: Get Brand Intelligence Social Own Insights Route
      description: |-
        Organic-social analysis of this brand's OWN public channels.

        A separate route rather than a subject flag on the competitor endpoint,
        because the own subject carries no client-supplied cohort: the service
        derives the domain from the ``Brand`` row and rejects anything else.
        Same response model, same eight panels -- own-brand snapshots are
        stored with ``competitor_domain = brand_domain``, so only the ownership
        gate differs.
      operationId: >-
        get_brand_intelligence_social_own_insights_route_api_v1_brands__brand_id__brand_intelligence_social_own_insights_post
      parameters:
        - name: brand_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Brand Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SocialOwnInsightsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SocialGroupInsightsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    SocialOwnInsightsRequest:
      properties:
        window_days:
          type: integer
          enum:
            - 7
            - 30
            - 90
          title: Window Days
          default: 30
        platforms:
          items:
            type: string
            enum:
              - youtube
              - x
              - linkedin
              - instagram
              - facebook
              - tiktok
          type: array
          maxItems: 6
          title: Platforms
      type: object
      title: SocialOwnInsightsRequest
      description: |-
        The brand's OWN organic-social slice. Carries no cohort at all.

        Deliberately NOT a ``subject`` field on ``SocialGroupInsightsRequest``.
        The own-brand subject is exactly one domain and the server derives it
        from the ``Brand`` row; a request that could also name its own subject
        would need a "do the two agree?" check, and that is the kind of check
        somebody eventually forgets. With no ``domains`` field there is nothing
        to disagree with.

        ``group_label`` is absent for the same reason: there is no group.
    SocialGroupInsightsResponse:
      properties:
        module:
          type: string
          const: social
          title: Module
          default: social
        brand_id:
          type: string
          format: uuid
          title: Brand Id
        generated_at:
          type: string
          format: date-time
          title: Generated At
        group_key:
          type: string
          title: Group Key
        group_label:
          anyOf:
            - type: string
            - type: 'null'
          title: Group Label
        cohort_domains:
          items:
            type: string
          type: array
          title: Cohort Domains
        platforms:
          items:
            type: string
            enum:
              - youtube
              - x
              - linkedin
              - instagram
              - facebook
              - tiktok
          type: array
          title: Platforms
        window:
          $ref: '#/components/schemas/SocialWindow'
        coverage:
          $ref: '#/components/schemas/SocialCoveragePanel'
        pulse:
          $ref: '#/components/schemas/SocialPulsePanel'
        format_mix:
          $ref: '#/components/schemas/SocialFormatMixPanel'
        platform_footprint:
          $ref: '#/components/schemas/SocialPlatformFootprintPanel'
        brand_leaderboard:
          $ref: '#/components/schemas/SocialBrandLeaderboardPanel'
        publishing_rhythm:
          $ref: '#/components/schemas/SocialPublishingRhythmPanel'
        trends:
          $ref: '#/components/schemas/SocialTrendsPanel'
        topics_hashtags:
          $ref: '#/components/schemas/SocialTopicsHashtagsPanel'
        top_posts:
          $ref: '#/components/schemas/SocialTopPostsPanel'
        findings:
          items:
            $ref: '#/components/schemas/ModuleRuleFinding'
          type: array
          title: Findings
        provenance:
          $ref: '#/components/schemas/SocialInsightsProvenance'
        sample_basis_notice:
          type: string
          title: Sample Basis Notice
          default: >-
            Computed from canonical public posts observed in stored competitor
            snapshots. Post counts and visible interactions are lower bounds,
            not complete platform firehoses; unavailable public metrics remain
            null.
      type: object
      required:
        - brand_id
        - generated_at
        - group_key
        - window
      title: SocialGroupInsightsResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SocialWindow:
      properties:
        window_days:
          type: integer
          enum:
            - 7
            - 30
            - 90
          title: Window Days
          default: 30
        previous_start:
          type: string
          format: date-time
          title: Previous Start
        previous_end:
          type: string
          format: date-time
          title: Previous End
        current_start:
          type: string
          format: date-time
          title: Current Start
        current_end:
          type: string
          format: date-time
          title: Current End
        semantics:
          type: string
          const: half_open_utc
          title: Semantics
          default: half_open_utc
      type: object
      required:
        - previous_start
        - previous_end
        - current_start
        - current_end
      title: SocialWindow
      description: 'Equal, half-open UTC comparison windows: ``[start, end)``.'
    SocialCoveragePanel:
      properties:
        availability:
          type: string
          enum:
            - available
            - partial
            - unavailable
          title: Availability
          default: unavailable
        targets_total:
          type: integer
          title: Targets Total
          default: 0
        measured:
          type: integer
          title: Measured
          default: 0
        missing:
          items:
            type: string
          type: array
          title: Missing
        fetch_failed:
          items:
            type: string
          type: array
          title: Fetch Failed
        persist_failed:
          items:
            type: string
          type: array
          title: Persist Failed
        outcome_unknown:
          items:
            type: string
          type: array
          title: Outcome Unknown
        fresh:
          type: integer
          title: Fresh
          default: 0
        stale:
          type: integer
          title: Stale
          default: 0
        freshness_threshold_hours:
          type: integer
          title: Freshness Threshold Hours
          default: 48
        rows:
          items:
            $ref: '#/components/schemas/SocialCoverageRow'
          type: array
          title: Rows
      type: object
      title: SocialCoveragePanel
    SocialPulsePanel:
      properties:
        availability:
          type: string
          enum:
            - available
            - partial
            - unavailable
          title: Availability
          default: unavailable
        posts:
          $ref: '#/components/schemas/SocialPeriodMetric'
        posting_profiles:
          $ref: '#/components/schemas/SocialPeriodMetric'
        active_brands:
          $ref: '#/components/schemas/SocialPeriodMetric'
        median_posts_per_active_brand:
          $ref: '#/components/schemas/SocialPeriodMetric'
        active_platforms:
          $ref: '#/components/schemas/SocialPeriodMetric'
        measured_profile_coverage_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Measured Profile Coverage Pct
        sample_size:
          type: integer
          title: Sample Size
          default: 0
        lower_bound:
          type: boolean
          title: Lower Bound
          default: true
      type: object
      title: SocialPulsePanel
    SocialFormatMixPanel:
      properties:
        availability:
          type: string
          enum:
            - available
            - partial
            - unavailable
          title: Availability
          default: unavailable
        rows:
          items:
            $ref: '#/components/schemas/SocialFormatMixRow'
          type: array
          title: Rows
        lift_signals:
          items:
            $ref: '#/components/schemas/SocialFormatMixRow'
          type: array
          maxItems: 8
          title: Lift Signals
        sample_size:
          type: integer
          title: Sample Size
          default: 0
        lower_bound:
          type: boolean
          title: Lower Bound
          default: true
      type: object
      title: SocialFormatMixPanel
    SocialPlatformFootprintPanel:
      properties:
        availability:
          type: string
          enum:
            - available
            - partial
            - unavailable
          title: Availability
          default: unavailable
        rows:
          items:
            $ref: '#/components/schemas/SocialPlatformFootprintRow'
          type: array
          title: Rows
        top_platform:
          anyOf:
            - type: string
              enum:
                - youtube
                - x
                - linkedin
                - instagram
                - facebook
                - tiktok
            - type: 'null'
          title: Top Platform
        top_platform_share_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Top Platform Share Pct
        sample_size:
          type: integer
          title: Sample Size
          default: 0
        lower_bound:
          type: boolean
          title: Lower Bound
          default: true
      type: object
      title: SocialPlatformFootprintPanel
    SocialBrandLeaderboardPanel:
      properties:
        availability:
          type: string
          enum:
            - available
            - partial
            - unavailable
          title: Availability
          default: unavailable
        scope:
          type: string
          enum:
            - single_platform
            - all_platforms
          title: Scope
          default: all_platforms
        rows:
          items:
            $ref: '#/components/schemas/SocialBrandLeaderboardRow'
          type: array
          title: Rows
        sample_size:
          type: integer
          title: Sample Size
          default: 0
        lower_bound:
          type: boolean
          title: Lower Bound
          default: true
      type: object
      title: SocialBrandLeaderboardPanel
    SocialPublishingRhythmPanel:
      properties:
        availability:
          type: string
          enum:
            - available
            - partial
            - unavailable
          title: Availability
          default: unavailable
        rows:
          items:
            $ref: '#/components/schemas/SocialPublishingRhythmRow'
          type: array
          title: Rows
        top_brand_domain:
          anyOf:
            - type: string
            - type: 'null'
          title: Top Brand Domain
        top_brand_share_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Top Brand Share Pct
        sample_size:
          type: integer
          title: Sample Size
          default: 0
        lower_bound:
          type: boolean
          title: Lower Bound
          default: true
      type: object
      title: SocialPublishingRhythmPanel
    SocialTrendsPanel:
      properties:
        availability:
          type: string
          enum:
            - available
            - partial
            - unavailable
          title: Availability
          default: unavailable
        granularity:
          type: string
          enum:
            - day
            - week
          title: Granularity
          default: day
        rows:
          items:
            $ref: '#/components/schemas/SocialTrendRow'
          type: array
          title: Rows
        sample_size:
          type: integer
          title: Sample Size
          default: 0
        lower_bound:
          type: boolean
          title: Lower Bound
          default: true
      type: object
      title: SocialTrendsPanel
    SocialTopicsHashtagsPanel:
      properties:
        availability:
          type: string
          enum:
            - available
            - partial
            - unavailable
          title: Availability
          default: unavailable
        top_terms:
          items:
            $ref: '#/components/schemas/SocialTopicSignal'
          type: array
          maxItems: 8
          title: Top Terms
        lift_signals:
          items:
            $ref: '#/components/schemas/SocialTopicSignal'
          type: array
          maxItems: 8
          title: Lift Signals
        sample_size:
          type: integer
          title: Sample Size
          default: 0
        lower_bound:
          type: boolean
          title: Lower Bound
          default: true
      type: object
      title: SocialTopicsHashtagsPanel
    SocialTopPostsPanel:
      properties:
        availability:
          type: string
          enum:
            - available
            - partial
            - unavailable
          title: Availability
          default: unavailable
        posts:
          items:
            $ref: '#/components/schemas/SocialTopPost'
          type: array
          maxItems: 10
          title: Posts
        sample_size:
          type: integer
          title: Sample Size
          default: 0
        lower_bound:
          type: boolean
          title: Lower Bound
          default: true
      type: object
      title: SocialTopPostsPanel
    ModuleRuleFinding:
      properties:
        rule_id:
          type: string
          title: Rule Id
        module:
          type: string
          enum:
            - seo
            - content
            - reviews
            - social
            - google-ads
            - audits
          title: Module
        panel:
          type: string
          title: Panel
        severity:
          type: string
          enum:
            - info
            - opportunity
            - risk
          title: Severity
          default: info
        title:
          type: string
          title: Title
        detail:
          type: string
          title: Detail
        evidence_refs:
          items:
            type: string
          type: array
          title: Evidence Refs
      type: object
      required:
        - rule_id
        - module
        - panel
        - title
        - detail
      title: ModuleRuleFinding
      description: |-
        One deterministic finding emitted by the rule engine.

        Every LLM recommendation must cite one of these ``rule_id``s, so the
        narrative can neither contradict nor exceed the measured layer.
    SocialInsightsProvenance:
      properties:
        source_tables:
          items:
            type: string
          type: array
          title: Source Tables
        window_semantics:
          type: string
          const: half_open_utc
          title: Window Semantics
          default: half_open_utc
        domain_platform_pairs_requested:
          type: integer
          title: Domain Platform Pairs Requested
          default: 0
        domain_platform_pairs_compared:
          type: integer
          title: Domain Platform Pairs Compared
          default: 0
        metric_rows:
          type: integer
          title: Metric Rows
          default: 0
        snapshot_rows:
          type: integer
          title: Snapshot Rows
          default: 0
        refresh_runs:
          type: integer
          title: Refresh Runs
          default: 0
        observation_rows:
          type: integer
          title: Observation Rows
          default: 0
        canonical_items:
          type: integer
          title: Canonical Items
          default: 0
        lower_bound:
          type: boolean
          title: Lower Bound
          default: true
      type: object
      title: SocialInsightsProvenance
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    SocialCoverageRow:
      properties:
        domain:
          type: string
          title: Domain
        platform:
          type: string
          enum:
            - youtube
            - x
            - linkedin
            - instagram
            - facebook
            - tiktok
          title: Platform
        status:
          type: string
          enum:
            - measured
            - missing
            - fetch_failed
            - persist_failed
            - outcome_unknown
          title: Status
        captured_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Captured At
        age_hours:
          anyOf:
            - type: number
            - type: 'null'
          title: Age Hours
        freshness:
          type: string
          enum:
            - fresh
            - stale
            - missing
          title: Freshness
          default: missing
      type: object
      required:
        - domain
        - platform
        - status
      title: SocialCoverageRow
    SocialPeriodMetric:
      properties:
        current:
          anyOf:
            - type: number
            - type: 'null'
          title: Current
        previous:
          anyOf:
            - type: number
            - type: 'null'
          title: Previous
        delta_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Delta Pct
        paired_profiles:
          type: integer
          title: Paired Profiles
          default: 0
        sample_size:
          type: integer
          title: Sample Size
          default: 0
        comparison_status:
          type: string
          enum:
            - comparable
            - insufficient_history
            - not_comparable
          title: Comparison Status
          default: not_comparable
        lower_bound:
          type: boolean
          title: Lower Bound
          default: false
      type: object
      title: SocialPeriodMetric
      description: >-
        Observed-period values with a pair-safe comparison.


        ``current`` and ``previous`` retain every captured value in their own

        window.  Only ``delta_pct`` requires the identical domain/platform
        profile

        set to be valid in both periods; otherwise it is null and the status
        names

        why.
    SocialFormatMixRow:
      properties:
        signal_key:
          type: string
          title: Signal Key
        platform:
          type: string
          enum:
            - youtube
            - x
            - linkedin
            - instagram
            - facebook
            - tiktok
          title: Platform
        format:
          type: string
          enum:
            - video
            - image
            - carousel
            - text
            - link
            - other
          title: Format
        posts:
          $ref: '#/components/schemas/SocialPeriodMetric'
        current_share_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Current Share Pct
        previous_share_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Previous Share Pct
        lift_pct_points:
          anyOf:
            - type: number
            - type: 'null'
          title: Lift Pct Points
        brands_current:
          type: integer
          title: Brands Current
          default: 0
        brands_previous:
          type: integer
          title: Brands Previous
          default: 0
      type: object
      required:
        - signal_key
        - platform
        - format
      title: SocialFormatMixRow
    SocialPlatformFootprintRow:
      properties:
        signal_key:
          type: string
          title: Signal Key
        platform:
          type: string
          enum:
            - youtube
            - x
            - linkedin
            - instagram
            - facebook
            - tiktok
          title: Platform
        profiles_total:
          type: integer
          title: Profiles Total
          default: 0
        profiles_measured:
          type: integer
          title: Profiles Measured
          default: 0
        posts:
          $ref: '#/components/schemas/SocialPeriodMetric'
        active_brands:
          $ref: '#/components/schemas/SocialPeriodMetric'
        current_post_share_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Current Post Share Pct
      type: object
      required:
        - signal_key
        - platform
      title: SocialPlatformFootprintRow
    SocialBrandLeaderboardRow:
      properties:
        domain:
          type: string
          title: Domain
        rank:
          anyOf:
            - type: integer
              minimum: 1
            - type: 'null'
          title: Rank
        tied_count:
          anyOf:
            - type: integer
              minimum: 1
            - type: 'null'
          title: Tied Count
        platform:
          anyOf:
            - type: string
              enum:
                - youtube
                - x
                - linkedin
                - instagram
                - facebook
                - tiktok
            - type: 'null'
          title: Platform
        posts:
          $ref: '#/components/schemas/SocialPeriodMetric'
        active_profiles:
          $ref: '#/components/schemas/SocialPeriodMetric'
        active_days:
          $ref: '#/components/schemas/SocialPeriodMetric'
        follower_snapshot:
          anyOf:
            - type: integer
            - type: 'null'
          title: Follower Snapshot
        follower_captured_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Follower Captured At
        follower_change:
          anyOf:
            - $ref: '#/components/schemas/SocialPeriodMetric'
            - type: 'null'
        median_visible_interactions:
          anyOf:
            - $ref: '#/components/schemas/SocialPeriodMetric'
            - type: 'null'
        follower_normalized_rate:
          anyOf:
            - $ref: '#/components/schemas/SocialPeriodMetric'
            - type: 'null'
      type: object
      required:
        - domain
      title: SocialBrandLeaderboardRow
    SocialPublishingRhythmRow:
      properties:
        signal_key:
          type: string
          title: Signal Key
        platform:
          type: string
          enum:
            - youtube
            - x
            - linkedin
            - instagram
            - facebook
            - tiktok
          title: Platform
        weekday:
          type: integer
          maximum: 6
          minimum: 0
          title: Weekday
        weekday_label:
          type: string
          title: Weekday Label
        posts:
          $ref: '#/components/schemas/SocialPeriodMetric'
        current_share_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Current Share Pct
        previous_share_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Previous Share Pct
      type: object
      required:
        - signal_key
        - platform
        - weekday
        - weekday_label
      title: SocialPublishingRhythmRow
    SocialTrendRow:
      properties:
        signal_key:
          type: string
          title: Signal Key
        platform:
          type: string
          enum:
            - youtube
            - x
            - linkedin
            - instagram
            - facebook
            - tiktok
          title: Platform
        posts:
          $ref: '#/components/schemas/SocialPeriodMetric'
        points:
          items:
            $ref: '#/components/schemas/SocialTrendPoint'
          type: array
          title: Points
      type: object
      required:
        - signal_key
        - platform
      title: SocialTrendRow
    SocialTopicSignal:
      properties:
        signal_key:
          type: string
          title: Signal Key
        platform:
          type: string
          enum:
            - youtube
            - x
            - linkedin
            - instagram
            - facebook
            - tiktok
          title: Platform
        kind:
          type: string
          enum:
            - topic
            - hashtag
          title: Kind
        value:
          type: string
          title: Value
        posts:
          $ref: '#/components/schemas/SocialPeriodMetric'
        current_share_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Current Share Pct
        previous_share_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Previous Share Pct
        lift_pct_points:
          anyOf:
            - type: number
            - type: 'null'
          title: Lift Pct Points
        brands_current:
          type: integer
          title: Brands Current
          default: 0
        brands_previous:
          type: integer
          title: Brands Previous
          default: 0
      type: object
      required:
        - signal_key
        - platform
        - kind
        - value
      title: SocialTopicSignal
    SocialTopPost:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        domain:
          type: string
          title: Domain
        platform:
          type: string
          enum:
            - youtube
            - x
            - linkedin
            - instagram
            - facebook
            - tiktok
          title: Platform
        title:
          type: string
          title: Title
        excerpt:
          anyOf:
            - type: string
            - type: 'null'
          title: Excerpt
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
        media_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Media Type
        published_at:
          type: string
          format: date-time
          title: Published At
        visible_interactions:
          anyOf:
            - type: integer
            - type: 'null'
          title: Visible Interactions
        views:
          anyOf:
            - type: integer
            - type: 'null'
          title: Views
        likes:
          anyOf:
            - type: integer
            - type: 'null'
          title: Likes
        comments:
          anyOf:
            - type: integer
            - type: 'null'
          title: Comments
        shares:
          anyOf:
            - type: integer
            - type: 'null'
          title: Shares
        topics:
          items:
            type: string
          type: array
          title: Topics
        hashtags:
          items:
            type: string
          type: array
          title: Hashtags
        performance_index:
          anyOf:
            - type: number
              maximum: 100
              minimum: 0
            - type: 'null'
          title: Performance Index
        performance_metric:
          anyOf:
            - type: string
              enum:
                - engagements
                - views
            - type: 'null'
          title: Performance Metric
        performance_sample_size:
          type: integer
          title: Performance Sample Size
          default: 0
        performance_baseline_median:
          anyOf:
            - type: number
            - type: 'null'
          title: Performance Baseline Median
        performance_note:
          anyOf:
            - type: string
            - type: 'null'
          title: Performance Note
      type: object
      required:
        - id
        - domain
        - platform
        - title
        - published_at
      title: SocialTopPost
    SocialTrendPoint:
      properties:
        index:
          type: integer
          minimum: 0
          title: Index
        current_at:
          type: string
          format: date-time
          title: Current At
        previous_at:
          type: string
          format: date-time
          title: Previous At
        current_posts:
          anyOf:
            - type: integer
            - type: 'null'
          title: Current Posts
        previous_posts:
          anyOf:
            - type: integer
            - type: 'null'
          title: Previous Posts
      type: object
      required:
        - index
        - current_at
        - previous_at
      title: SocialTrendPoint
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````