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

# Topic aggregation: one row per `(name_normalised, entity_...



## OpenAPI

````yaml /openapi.json get /graph/cross-workspace/topics
openapi: 3.0.0
info:
  title: Kair Voice
  version: '1.0'
servers:
  - url: http://0.0.0.0:8000/api
security: []
tags:
  - name: Admin
  - name: ApiKey
  - name: Auth
  - name: Concerns
  - name: Device
  - name: Graph
  - name: Health
  - name: Job
  - name: Session
  - name: Workshop
  - name: Workspace
paths:
  /graph/cross-workspace/topics:
    get:
      tags:
        - Graph
      summary: 'Topic aggregation: one row per `(name_normalised, entity_...'
      operationId: get-graph-cross-workspace-topics
      parameters:
        - name: workspace_ids
          schema:
            type: string
          in: query
          required: false
          deprecated: false
          explode: true
        - name: layer
          schema:
            type: integer
            format: int32
          in: query
          required: false
          deprecated: false
          explode: true
        - name: min_workspace_count
          schema:
            type: integer
            format: int32
          in: query
          required: false
          deprecated: false
          explode: true
        - name: limit
          schema:
            type: integer
            format: int32
          in: query
          required: false
          deprecated: false
          explode: true
      responses:
        '200':
          description: ''
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/TopicAggregateResponse'
        '400':
          description: ''
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: ''
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: ''
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: ''
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    TopicAggregateResponse:
      type: object
      title: TopicAggregateResponse
      required:
        - topics
        - workspaces
      properties:
        topics:
          type: array
          items:
            $ref: '#/components/schemas/TopicAggregate'
        workspaces:
          type: array
          items:
            $ref: '#/components/schemas/WorkspaceLabel'
    ErrorResponse:
      type: object
      title: ErrorResponse
      required:
        - success
        - message
      properties:
        success:
          type: boolean
        message:
          type: string
    TopicAggregate:
      type: object
      title: TopicAggregate
      required:
        - name_normalised
        - label
        - entity_type
        - total_occurrences
        - workspace_count
        - session_count
        - workspace_ids
      properties:
        name_normalised:
          type: string
        label:
          type: string
          description: >-
            Best human-readable surface form for this topic (most common variant
            in the data).
        entity_type:
          type: string
        total_occurrences:
          type: integer
          format: int64
          description: >-
            Total number of times this topic appears across the allowed
            workspaces.

            Drives bubble size in the Connections viewer.
        workspace_count:
          type: integer
          format: int64
        session_count:
          type: integer
          format: int64
        workspace_ids:
          type: array
          items:
            type: string
    WorkspaceLabel:
      type: object
      title: WorkspaceLabel
      required:
        - id
        - name
      properties:
        id:
          type: string
        name:
          type: string

````