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

# LIST Building Space

> Returns a paged list of the Building's spaces, archived and non-archived alike — filter with `archived=false` for current units.

**Required capabilities:** `READ:BUILDING_SPACE`

## Filters

Filters combine with AND: a result must match every filter you supply.

| Filter | Description |
| - | - |
| `type` | Exact match on the space type; an unrecognized value returns no results. |
| `floor` | Exact match on the floor designation. |
| `suiteNumber` | Exact match on the suite name. |
| `rentable` | Filters to spaces with this rentable flag. |
| `occupied` | Filters to spaces with this occupied override value. |
| `archived` | Filters to archived (true) or non-archived (false) spaces; omit for both. |


## OpenAPI

````yaml /api-reference/openapi.json get /rest/v2/accounts/{accountId}/buildings/{buildingId}/spaces
openapi: 3.1.0
info:
  title: Prophia API Documentation
  license:
    name: Apache 2.0
    url: http://springdoc.org
  version: v2.495.0
servers:
  - url: https://api.prophia.com
    description: Prophia API
security:
  - apiKey: []
tags:
  - name: Accounts
    description: >-
      Accounts are the top-level scope for everything in the API. Start here:
      list your accounts to find the `accountId` every other path requires.
  - name: Properties
    description: >-
      Properties group one or more buildings under a single asset within an
      account.
  - name: Buildings
    description: Buildings are the physical structures where leases and spaces live.
  - name: Building Spaces
    description: >-
      Building spaces are the units inside a building — suites, floors, storage.
      A space's `suiteNumber` is the canonical name that tag `applicableSpaces`
      entries reference by string match.
  - name: Leases
    description: >-
      Leases are the agreements occupying building spaces. Each lease carries
      its source documents and the tags (structured terms) extracted from them.
  - name: Documents
    description: >-
      Documents are the source files attached to leases — original leases,
      amendments, memorandums, etc.
  - name: Tags
    description: >-
      Tags are the structured lease terms Prophia extracts from documents — a
      rent amount, a renewal option, a key date — each cited to its location in
      the source document. STANDARD tags carry a typed `value`; COMPLEX tags
      carry option details in `tagComponents`.
  - name: Custom Terms
    description: >-
      Custom terms are account-level definitions of extra lease terms your team
      tracks beyond Prophia's standard set. Tags created from them are ordinary
      tags with `isCustomTag: true` — the definition and its tag instances are
      separate resources.
  - name: Custom Fields
    description: >-
      Custom Fields are Account-level fields your team tracks on Buildings
      beyond Prophia's standard set. A `SINGLE` field holds free text per
      Building; a `MULTI` field holds one of a fixed list of options.
      Assignments set a field's value on a Building.
  - name: Loans
    description: >-
      Loans are the financing agreements secured by an account's buildings. Each
      loan carries its source documents and the terms read from them: summary
      terms, covenants and reporting deliverables. Loans is a Labs feature in
      beta, and its endpoints may change.
    x-beta: true
paths:
  /rest/v2/accounts/{accountId}/buildings/{buildingId}/spaces:
    get:
      tags:
        - Building Spaces
      summary: LIST Building Space
      description: >-
        Returns a paged list of the Building's spaces, archived and non-archived
        alike — filter with `archived=false` for current units.


        **Required capabilities:** `READ:BUILDING_SPACE`
      operationId: listBuildingSpaces
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
        - name: buildingId
          in: path
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: 0-based page index. Negative values are clamped to 0.
          required: false
          schema:
            type: integer
            format: int32
            default: 0
            description: 0-based page index. Negative values are clamped to 0.
        - name: limit
          in: query
          description: >-
            Page size. Values outside 1–200 are clamped, not rejected; check the
            response's `limit` for the value actually applied.
          required: false
          schema:
            type: integer
            format: int32
            default: 50
            description: >-
              Page size. Values outside 1–200 are clamped, not rejected; check
              the response's `limit` for the value actually applied.
        - name: sortBy
          in: query
          description: >-
            Sort field. Defaults to `suiteNumber`; unrecognized values silently
            fall back to the default.
          required: false
          schema:
            type: string
            default: suiteNumber
            enum:
              - floor
              - suiteNumber
              - type
              - squareFootage
              - createdAt
              - updatedAt
        - name: sortDir
          in: query
          description: >-
            Sort direction: `asc` (default) or `desc`. Any other value is
            treated as `asc`.
          required: false
          schema:
            type: string
            default: asc
            description: >-
              Sort direction: `asc` (default) or `desc`. Any other value is
              treated as `asc`.
        - name: type
          in: query
          description: >-
            Exact match on the space type; an unrecognized value returns no
            results.
          required: false
          schema:
            type: string
            description: >-
              Exact match on the space type; an unrecognized value returns no
              results.
            enum:
              - Office
              - Retail
              - Industrial
              - Storage
              - Telecom
              - Parking
              - Conference Room
              - Lobby
              - Elevator
              - Fitness Center
              - License Agreement
              - Management Office
              - Amenity
              - Cafe
              - Bike Storage
              - Lounge
              - Other
              - zSuite
            x-mint:
              pre:
                - Filter
        - name: floor
          in: query
          description: Exact match on the floor designation.
          required: false
          schema:
            type: string
            description: Exact match on the floor designation.
            x-mint:
              pre:
                - Filter
        - name: suiteNumber
          in: query
          description: Exact match on the suite name.
          required: false
          schema:
            type: string
            description: Exact match on the suite name.
            x-mint:
              pre:
                - Filter
        - name: rentable
          in: query
          description: Filters to spaces with this rentable flag.
          required: false
          schema:
            type: boolean
            description: Filters to spaces with this rentable flag.
            x-mint:
              pre:
                - Filter
        - name: occupied
          in: query
          description: Filters to spaces with this occupied override value.
          required: false
          schema:
            type: boolean
            description: Filters to spaces with this occupied override value.
            x-mint:
              pre:
                - Filter
        - name: archived
          in: query
          description: >-
            Filters to archived (true) or non-archived (false) spaces; omit for
            both.
          required: false
          schema:
            type: boolean
            description: >-
              Filters to archived (true) or non-archived (false) spaces; omit
              for both.
            x-mint:
              pre:
                - Filter
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V2PagedBuildingSpaceResult'
        '400':
          description: >-
            Invalid input — for example an unknown `include` key or a malformed
            parameter value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2ErrorResponse'
              example:
                error: Invalid Input
                errorCode: InvalidInput
                message: >-
                  Unknown include keys: [bogus]; supported: [tags, documents,
                  subleases]
                status: 400 BAD_REQUEST
                timestamp: '2026-09-02T20:41:03.118Z'
                localizedMessage: >-
                  Unknown include keys: [bogus]; supported: [tags, documents,
                  subleases]
        '401':
          description: >-
            The credential was rejected before the request reached the endpoint
            — for example a JWT was presented where an API key is required. Only
            `error` is populated on this path
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2ErrorResponse'
              example:
                error: JWT authentication is not supported. Use an API key.
        '403':
          description: >-
            The API key is valid but lacks a required capability, or its
            building permissions do not cover the requested resource. The
            message names the missing capabilities only in the former case
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2ErrorResponse'
              example:
                error: Access Denied
                errorCode: AccessDenied
                message: 'Not authorized. Missing capabilities: READ:TAG'
                status: 403 FORBIDDEN
                timestamp: '2026-09-02T20:41:03.118Z'
                localizedMessage: 'Not authorized. Missing capabilities: READ:TAG'
        '404':
          description: No such resource is visible to the account named in the path
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2ErrorResponse'
              example:
                error: Entity Not Found
                errorCode: EntityNotFound
                message: This entity is not found in the system.
                status: 404 NOT_FOUND
                timestamp: '2026-09-02T20:41:03.118Z'
                localizedMessage: This entity is not found in the system.
components:
  schemas:
    V2PagedBuildingSpaceResult:
      type: object
      properties:
        totalCount:
          type: integer
          format: int64
          description: Total number of items matching the request across all pages.
        page:
          type: integer
          format: int32
          description: 0-based index of this page.
        limit:
          type: integer
          format: int32
          description: >-
            Page size actually applied — requested values outside 1–200 are
            clamped.
        items:
          type: array
          description: The Building Spaces on this page of results.
          items:
            $ref: '#/components/schemas/V2BuildingSpaceModel'
        hasMore:
          type: boolean
          description: >-
            True when more pages exist after this one. Iterate on this rather
            than computing page counts from totalCount, which can change between
            requests.
    V2ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Stable error category
          example: Invalid Input
        errorCode:
          type: string
          description: Stable error code suitable for programmatic handling
          example: InvalidInput
        message:
          type: string
          description: Human-readable detail; may aggregate multiple field errors
        status:
          type: string
          description: >-
            HTTP status of the response as code and reason phrase, matching the
            response's own status line
          example: 404 NOT_FOUND
        timestamp:
          type: string
          format: date-time
          description: When the error was produced, as an ISO-8601 UTC instant
          example: '2026-09-02T20:41:03.118Z'
        localizedMessage:
          type: string
          description: >-
            Same text as `message`; present because the body is a serialized
            exception. Prefer `message`
    V2BuildingSpaceModel:
      type: object
      description: >-
        Representation of a space or unit in a Building. Some example uses: a
        rentable suite, a conference room, storage space, or a full floor.
      properties:
        id:
          type: string
          description: Prophia internal Building Space ID (UUID).
          readOnly: true
        buildingId:
          type: string
          description: The buildingId (UUID) of the Building this space belongs to.
          readOnly: true
        floor:
          type: string
          description: >-
            Floor the space sits on. This value primarily affects the grouping
            of Building Spaces in the Stacking Plan, but also governs which
            spaces have floor level encumbrances applied to them. For example if
            a ROFO Tag's offeredSpace component references 'FLOOR1' as its
            `encumbranceSpaces` value, all spaces having space.floor=1 will show
            as encumbered in the Stacking Plan.
        suiteNumber:
          type: string
          description: >-
            Canonical name of the space. This is the value that Tag
            `applicableSpaces` entries match against, by string — renaming it
            breaks those associations.
        squareFootage:
          type: integer
          format: int32
          description: Rentable square footage of the space.
        type:
          type: string
          description: >-
            What kind of unit this is. This is a referential value and does not
            affect how a space operates in the system.
          enum:
            - Office
            - Retail
            - Industrial
            - Storage
            - Telecom
            - Parking
            - Conference Room
            - Lobby
            - Elevator
            - Fitness Center
            - License Agreement
            - Management Office
            - Amenity
            - Cafe
            - Bike Storage
            - Lounge
            - Other
            - zSuite
        rentable:
          type: boolean
          description: >-
            Whether the space counts as rentable inventory. If marked as
            non-rentable, the space and leases associated with it, if you've
            chosen to continue associating leases with the space, may cease
            being present in reports like the Rent Roll. Marking a space as
            non-rentable is normally used in cases like Lobbies, Elevators, and
            like shared public spaces of the Building that are not eligible to
            be leased.
        archived:
          type: boolean
          description: >-
            Archived spaces still appear in listings unless filtered with
            `archived=false`. It's best to archive a Building Space when it is
            referenced by historical leases but is no longer representative of a
            discrete space in the Building.
        createdAt:
          type: string
          format: date-time
          description: When the space was created.
          readOnly: true
        updatedAt:
          type: string
          format: date-time
          description: When the space was last modified.
          readOnly: true
        occupied:
          type: boolean
          description: >-
            An override value: Allows the space to be marked as occupied, even
            when lacking an active lease associated with the space. A value of
            false does not mean that there are no associated active leases, only
            that the override is not currently marking the space as occupied.
            Best used for spaces that are not traditionally leased but you still
            want to show as occupied in the Stacking Plan and count towards
            occupied square footage statistics.
  securitySchemes:
    apiKey:
      type: apiKey
      description: >-
        Prophia API key — either an account key (grants admin level permissions)
        or a user key with the REST scope. Send it in the `X-API-Key` header, or
        equivalently as `Authorization: Bearer <api-key>`. JWTs are rejected on
        /rest endpoints with 401.
      name: X-API-Key
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.