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

# Theme-analysis pipeline status for the project

> Read-only progress snapshot: whether an analysis is running (extraction/clustering in flight), pending (completed prompt runs queued for the next poll), or idle (up to date), plus the underlying counts.



## OpenAPI

````yaml https://api.mentionlab.io/api/docs-json get /api/projects/theme-analysis/status
openapi: 3.0.0
info:
  title: MentionLab Public API v0.3.4-rc
  description: ''
  version: 0.3.4-rc
  contact: {}
servers:
  - url: https://api.mentionlab.io
security: []
tags: []
paths:
  /api/projects/theme-analysis/status:
    get:
      tags:
        - Theme Analysis
      summary: Theme-analysis pipeline status for the project
      description: >-
        Read-only progress snapshot: whether an analysis is running
        (extraction/clustering in flight), pending (completed prompt runs queued
        for the next poll), or idle (up to date), plus the underlying counts.
      operationId: ThemeAnalysisController_getStatus
      parameters:
        - name: x-project-id
          in: header
          description: Project ID to specify the project context
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeAnalysisStatusResponse'
        '400':
          description: >-
            The request failed validation — the body, query or path parameters
            are malformed or out of range.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '401':
          description: The request is missing valid authentication credentials.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '403':
          description: >-
            The authenticated principal lacks the required permission, or access
            to the requested organisation/project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
components:
  schemas:
    ThemeAnalysisStatusResponse:
      type: object
      properties:
        status:
          type: string
          description: >-
            Coarse pipeline state. running = mentions are being
            extracted/clustered right now; pending = completed prompt runs are
            queued for the next poll (~1 min); failed = the last cluster pass
            failed or was killed (OOM/SIGKILL) and the project is not converging
            — see lastRun; idle = nothing outstanding, the project is up to
            date.
          enum:
            - idle
            - pending
            - running
            - failed
          example: running
        enabled:
          type: boolean
          description: Whether theme analysis is enabled for this project.
          example: true
        pendingJobs:
          type: number
          description: >-
            Completed prompt runs not yet handed off to analysis (the poller
            will pick them up within ~1 min).
          example: 3
        analyzedJobs:
          type: number
          description: Completed prompt runs already handed off to analysis.
          example: 28
        unclusteredMentions:
          type: number
          description: >-
            Theme mentions extracted but not yet assigned a theme (clustering in
            flight).
          example: 14
        themeMentions:
          type: number
          description: Total theme mentions extracted for this project so far.
          example: 412
        themes:
          type: number
          description: Distinct themes the project mentions have resolved into.
          example: 23
        lastActivityAt:
          type: string
          description: >-
            ISO timestamp of the most recent extracted mention, or null if none
            yet.
          example: '2026-06-25T10:12:04.000Z'
          nullable: true
        lastRun:
          description: >-
            The last stage-3 cluster pass, or null if the project has never been
            clustered.
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/ThemeAnalysisLastRun'
      required:
        - status
        - enabled
        - pendingJobs
        - analyzedJobs
        - unclusteredMentions
        - themeMentions
        - themes
        - lastActivityAt
    ApiErrorResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code of the error.
          example: 400
        message:
          type: string
          description: >-
            Human-readable description of the error. Validation failures return
            an array of per-field validation errors instead of a single string.
          example: Validation failed
        error:
          type: string
          description: Short name of the HTTP error.
          example: Bad Request
      required:
        - statusCode
    ThemeAnalysisLastRun:
      type: object
      properties:
        startedAt:
          type: string
          description: When the last cluster pass started.
          example: '2026-07-14T10:12:04.000Z'
        finishedAt:
          type: string
          description: >-
            When the last cluster pass ended; null if it is still running. This
            is when the themes you are looking at were last recomputed.
          nullable: true
          example: '2026-07-14T10:18:41.000Z'
      required:
        - startedAt

````