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

# Update a project

> Updates a project's editable fields; the path `id` must match the `x-project-id` header.



## OpenAPI

````yaml https://api.mentionlab.io/api/docs-json patch /api/v1/projects/{id}
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/v1/projects/{id}:
    patch:
      tags:
        - Projects
      summary: Update a project
      description: >-
        Updates a project's editable fields; the path `id` must match the
        `x-project-id` header.
      operationId: ProjectsV1Controller_update_v1
      parameters:
        - name: id
          required: true
          in: path
          description: >-
            Identifier of the project to update. Must match the `x-project-id`
            header.
          schema:
            example: 550e8400-e29b-41d4-a716-446655440000
            type: string
        - name: x-project-id
          in: header
          description: Project ID to specify the project context
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProjectDto'
      responses:
        '204':
          description: ''
        '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:
    UpdateProjectDto:
      type: object
      properties:
        name:
          type: string
          description: The name of the project
          example: My Project
        description:
          type: string
          description: The description of the project
          example: My Project Description
        website:
          type: string
          description: The website of the project
          example: https://www.mentionlab.io
        industry:
          type: string
          description: The industry of the project
          example: Cosmetics
        nameAliases:
          description: The aliases of the project name
          example:
            - My Project
            - My Project 2
          type: array
          items:
            type: string
        blackListAliases:
          description: The blacklisted aliases of the project name
          example:
            - Other Brand
            - Unrelated Company
          type: array
          items:
            type: string
        currentPo:
          type: string
          description: >-
            Active purchase order. When set, future buys / refunds / commitment
            releases that target this project snapshot the value onto the
            resulting lot for accountant statements.
          example: PO-2026-Q2-1234
        themeAnalysisEnabled:
          type: boolean
          description: >-
            Enable the async Brand Perception & Intelligence theme-analysis
            batch. When on, completed jobs are picked up (within ~1 min) and
            analyzed.
          example: true
        themeLanguage:
          type: string
          description: >-
            Language for extracted themes. A language code ('en', 'fr', 'nl', …)
            forces a monolingual taxonomy; 'auto' lets themes follow each
            answer's own language.
          enum:
            - auto
            - en
            - fr
            - nl
            - de
            - es
            - it
            - pt
          example: en
        themeClusteringConfig:
          description: >-
            Per-project theme clustering threshold overrides. Any omitted knob
            falls back to the global default. Takes effect on the next cluster
            pass; rebuild to re-apply to existing themes.
          allOf:
            - $ref: '#/components/schemas/ThemeClusteringConfigDto'
    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
    ThemeClusteringConfigDto:
      type: object
      properties:
        mint:
          type: number
          description: 'Resolve: below this cosine, mint a new theme.'
          example: 0.74
          minimum: 0
          maximum: 1
        fold:
          type: number
          description: 'Resolve: at/above this cosine, fold into the nearest theme.'
          example: 0.82
          minimum: 0
          maximum: 1
        consGrayLo:
          type: number
          description: 'Consolidate: below this cosine, not a merge candidate.'
          example: 0.74
          minimum: 0
          maximum: 1
        autoMerge:
          type: number
          description: 'Consolidate: at/above this cosine, auto-merge without the LLM.'
          example: 0.92
          minimum: 0
          maximum: 1
        singletonAbsorbLo:
          type: number
          description: 'Consolidate: raw floor for the singleton-absorption pass.'
          example: 0.62
          minimum: 0
          maximum: 1
        whitenGate:
          type: number
          description: >-
            Consolidate: whitened-cosine anisotropy guard on merge candidates
            (higher = splits more aggressively; 0 disables).
          example: 0.2
          minimum: -1
          maximum: 1
        superAssignFloor:
          type: number
          description: >-
            Super-themes: min whitened cosine to assign a theme to a category;
            below it the theme stays ungrouped.
          example: 0.05
          minimum: -1
          maximum: 1
        superMax:
          type: number
          description: 'Super-themes: max super-themes per project.'
          example: 15
          minimum: 1
          maximum: 100

````