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

# Query projects

> List projects when the filter is too large for a GET query string.



## OpenAPI

````yaml /openapi.yaml post /project/query
openapi: 3.0.3
info:
  title: BuildingSwell Public API
  version: 2.0.0
  description: >
    BuildingSwell v2 Public API. All endpoints require the `X-API-Key` header.

    Keys are scoped to your organization — all data is automatically filtered.


    See the [Guides](/index) for querying, filtering, joins, and response
    formats.
servers:
  - url: https://{instance}/api/v2
    description: Your BuildingSwell instance
    variables:
      instance:
        default: app.buildingswell.com
        description: Your BuildingSwell host
security:
  - ApiKeyAuth: []
tags:
  - name: Projects
    description: Top-level project groupings
  - name: Stages
    description: Stages — reusable department-scoped shop stations
  - name: Deliverables
    description: Work-tree nodes (orders, routes, phases, stages, steps, etc.)
  - name: Work sessions
    description: Work sessions on deliverables
  - name: Comments
    description: Comments on deliverables
  - name: Documents
    description: Documents attached to deliverables
  - name: Notes
    description: Notes on deliverables
  - name: Notifications
    description: Notifications and read-state
  - name: QC
    description: QC inspection sets and templates
  - name: Dependencies
    description: Dependency links between deliverables
  - name: Workers
    description: Workforce roster
  - name: Timesheets
    description: Unified time-tracking records (read-only)
  - name: Organization
    description: Roles and organization members
  - name: Concepts
    description: Concept-aware deliverable endpoints with validation
paths:
  /project/query:
    post:
      tags:
        - Projects
      summary: Query projects
      description: List projects when the filter is too large for a GET query string.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryBody'
      responses:
        '200':
          description: List of projects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse'
components:
  schemas:
    QueryBody:
      type: object
      properties:
        filter:
          type: string
        page:
          type: integer
        pageSize:
          type: integer
        orderBy:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
        select:
          type: array
          items:
            type: string
    ListResponse:
      type: object
      properties:
        values:
          type: array
          items:
            type: object
        hasMore:
          type: boolean
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````