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

# Groups



## OpenAPI

````yaml /openapi.json post /v1/workspaces/{workspaceId}/cross-project-reports/query/groups
openapi: 3.1.0
info:
  title: Specurate API
  description: ''
  version: 1.0.0
  contact: {}
servers:
  - url: https://app.specurate.com/api
    description: API Server
security: []
tags: []
paths:
  /v1/workspaces/{workspaceId}/cross-project-reports/query/groups:
    post:
      tags:
        - Cross Project Reports
      summary: Groups
      operationId: CrossProjectReportsController_groups_v1
      parameters:
        - name: workspaceId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryCrossProjectReportDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    QueryCrossProjectReportDto:
      type: object
      properties:
        configuration:
          type: object
          properties:
            version:
              type: number
              const: 1
            projectScope:
              oneOf:
                - type: object
                  properties:
                    mode:
                      type: string
                      const: fixed
                    projectIds:
                      minItems: 1
                      maxItems: 1000
                      type: array
                      items:
                        type: string
                  required:
                    - mode
                    - projectIds
                  additionalProperties: false
                - type: object
                  properties:
                    mode:
                      type: string
                      const: dynamic
                    filters:
                      type: object
                      properties:
                        search:
                          type: string
                          minLength: 1
                          maxLength: 200
                        status:
                          enum:
                            - active
                            - archived
                          type: string
                        region:
                          enum:
                            - north_america
                            - east_coast
                            - west_coast
                            - europe
                            - middle_east
                            - latin_america
                            - apac
                          type: string
                        lifecycleStatus:
                          type: string
                          pattern: ^[a-z][a-z0-9_]{0,63}$
                        sector:
                          type: string
                          pattern: ^[a-z][a-z0-9_]{0,63}$
                      additionalProperties: false
                  required:
                    - mode
                    - filters
                  additionalProperties: false
            filters:
              type: object
              properties:
                search:
                  type: string
                  minLength: 1
                  maxLength: 200
                categoryIds:
                  minItems: 1
                  maxItems: 100
                  type: array
                  items:
                    type: string
                productIds:
                  minItems: 1
                  maxItems: 100
                  type: array
                  items:
                    type: string
                supplierIds:
                  minItems: 1
                  maxItems: 100
                  type: array
                  items:
                    type: string
                manufacturerIds:
                  minItems: 1
                  maxItems: 100
                  type: array
                  items:
                    type: string
                completeness:
                  type: string
                  enum:
                    - empty
                    - missing_supplier
                    - missing_unit
                    - needs_attention
                attributes:
                  maxItems: 10
                  type: array
                  items:
                    oneOf:
                      - type: object
                        properties:
                          fieldKey:
                            type: string
                            minLength: 1
                            maxLength: 255
                          operator:
                            type: string
                            enum:
                              - is_any_of
                              - is_not_any_of
                          values:
                            minItems: 1
                            maxItems: 100
                            type: array
                            items:
                              type: string
                              minLength: 1
                              maxLength: 255
                        required:
                          - fieldKey
                          - operator
                          - values
                        additionalProperties: false
                      - type: object
                        properties:
                          fieldKey:
                            type: string
                            minLength: 1
                            maxLength: 255
                          operator:
                            type: string
                            enum:
                              - contains
                              - does_not_contain
                          value:
                            type: string
                            minLength: 1
                            maxLength: 1000
                        required:
                          - fieldKey
                          - operator
                          - value
                        additionalProperties: false
                      - type: object
                        properties:
                          fieldKey:
                            type: string
                            minLength: 1
                            maxLength: 255
                          operator:
                            type: string
                            enum:
                              - is_empty
                              - is_not_empty
                        required:
                          - fieldKey
                          - operator
                        additionalProperties: false
                      - type: object
                        properties:
                          fieldKey:
                            type: string
                            minLength: 1
                            maxLength: 255
                          operator:
                            type: string
                            enum:
                              - date_on
                              - date_before
                              - date_after
                          value:
                            type: string
                            format: date
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        required:
                          - fieldKey
                          - operator
                          - value
                        additionalProperties: false
                      - type: object
                        properties:
                          fieldKey:
                            type: string
                            minLength: 1
                            maxLength: 255
                          operator:
                            type: string
                            const: date_between
                          from:
                            type: string
                            format: date
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                          to:
                            type: string
                            format: date
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        required:
                          - fieldKey
                          - operator
                          - from
                          - to
                        additionalProperties: false
              additionalProperties: false
            groupBy:
              maxItems: 2
              type: array
              items:
                type: string
                enum:
                  - project
                  - category
                  - product
                  - manufacturer
                  - supplier
                  - unit
            columns:
              minItems: 1
              maxItems: 12
              type: array
              items:
                type: string
                enum:
                  - project
                  - reference
                  - name
                  - category
                  - product
                  - manufacturer
                  - supplier
                  - quantity
                  - unit
                  - selection
                  - gaps
                  - updatedAt
            attributeColumns:
              maxItems: 20
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 255
            metrics:
              minItems: 1
              maxItems: 4
              type: array
              items:
                type: string
                enum:
                  - specifications
                  - projects
                  - quantity
                  - completeness
            sort:
              type: object
              properties:
                field:
                  type: string
                  enum:
                    - project
                    - name
                    - quantity
                    - updatedAt
                direction:
                  type: string
                  enum:
                    - asc
                    - desc
              required:
                - field
                - direction
              additionalProperties: false
          required:
            - version
            - projectScope
            - filters
            - groupBy
            - columns
            - attributeColumns
            - metrics
            - sort
          additionalProperties: false
        groupPath:
          maxItems: 2
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                enum:
                  - project
                  - category
                  - product
                  - manufacturer
                  - supplier
                  - unit
              value:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: 'null'
            required:
              - field
              - value
            additionalProperties: false
        cursor:
          type: string
          minLength: 1
          maxLength: 4096
        limit:
          default: 50
          type: integer
          minimum: 1
          maximum: 100
      required:
        - configuration
      additionalProperties: false

````