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

> Returns a paged list of the Account's Buildings

**Required capabilities:** `READ:BUILDING`

## Filters

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

| Filter | Description | Requires |
| - | - | - |
| `name` | Case-insensitive contains match on the building name. | |
| `city` | Case-insensitive exact match on the address city. | |
| `state` | Case-insensitive exact match on the address state. | |
| `activeStatus` | Filter by the building's active status. | |
| `customId` | Exact match on the building's custom id. | |
| `buildingType` | Filter by building type. | |
| `implementationManager` | Case-insensitive contains match on the implementation manager's name. | |
| `customFields` | Custom Field filters, one entry per repeated parameter. | `READ:CUSTOM_FIELD` |


## OpenAPI

````yaml /api-reference/openapi.json get /rest/v2/accounts/{accountId}/buildings
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:
    get:
      tags:
        - Buildings
      summary: LIST Building
      description: |-
        Returns a paged list of the Account's Buildings

        **Required capabilities:** `READ:BUILDING`
      operationId: listBuildings
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            Optional collections to populate. Unknown keys are rejected with
            400.


            - `leases` — adds the list of leases under this building.
              - Requires the `READ:LEASE` capability.
            - `documents` — adds the list of building-level documents (e.g. rent
            rolls, stacking plans) attached at the building scope.
              - Requires the `READ:DOCUMENT` capability.
            - `spaces` — adds the list of suites/spaces (archived and
            non-archived) attached to this building.
              - Requires the `READ:BUILDING_SPACE` capability.
            - `customFields` — adds the building's values for its active
            Building Custom Fields, sorted by field name.
              - Requires the `READ:CUSTOM_FIELD` capability.
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - leases
                - documents
                - spaces
                - customFields
        - 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 `buildingName`; unrecognized values silently
            fall back to the default.
          required: false
          schema:
            type: string
            default: buildingName
            enum:
              - buildingName
              - address.city
              - address.state
              - activeStatus
              - customId
              - buildingType
              - implementationManager
              - createdAt
        - 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: name
          in: query
          description: Case-insensitive contains match on the building name.
          required: false
          schema:
            type: string
            description: Case-insensitive contains match on the building name.
            x-mint:
              pre:
                - Filter
        - name: city
          in: query
          description: Case-insensitive exact match on the address city.
          required: false
          schema:
            type: string
            description: Case-insensitive exact match on the address city.
            x-mint:
              pre:
                - Filter
        - name: state
          in: query
          description: Case-insensitive exact match on the address state.
          required: false
          schema:
            type: string
            description: Case-insensitive exact match on the address state.
            x-mint:
              pre:
                - Filter
        - name: activeStatus
          in: query
          description: >-
            Filter by the building's active status. Matching is
            case-insensitive; an unrecognized value returns no results.
          required: false
          schema:
            type: string
            description: >-
              Filter by the building's active status. Matching is
              case-insensitive; an unrecognized value returns no results.
            enum:
              - ACTIVE
              - INACTIVE
              - WORK_IN_PROGRESS
              - QA_PENDING
              - AI_PROCESSED
            x-mint:
              pre:
                - Filter
        - name: customId
          in: query
          description: Exact match on the building's custom id.
          required: false
          schema:
            type: string
            description: Exact match on the building's custom id.
            x-mint:
              pre:
                - Filter
        - name: buildingType
          in: query
          description: >-
            Filter by building type. Matching is case-insensitive; an
            unrecognized value returns a 400.
          required: false
          schema:
            type: string
            description: >-
              Filter by building type. Matching is case-insensitive; an
              unrecognized value returns a 400.
            enum:
              - OFFICE
              - INDUSTRIAL
              - RETAIL
              - MIXED_USE
              - OTHER
              - LIFE_SCIENCES
              - MEDICAL_OFFICE
              - FLEX
            x-mint:
              pre:
                - Filter
        - name: implementationManager
          in: query
          description: >-
            Case-insensitive contains match on the implementation manager's
            name.
          required: false
          schema:
            type: string
            description: >-
              Case-insensitive contains match on the implementation manager's
              name.
            x-mint:
              pre:
                - Filter
        - name: customFields
          in: query
          description: >-
            Custom Field filters, one entry per repeated parameter. Each entry
            is `name=value` to match a Building whose value for that field
            equals `value`, or just `name` to match a Building that has any
            value for that field. Names and values are exact, case-insensitive
            matches, and only active fields count. The entry is split on its
            first `=`, so values may contain `=` and commas. A Building must
            match every entry.


            Requires the `READ:CUSTOM_FIELD` capability.
          required: false
          schema:
            type: array
            items:
              type: string
            x-mint:
              pre:
                - Filter
              post:
                - READ:CUSTOM_FIELD
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V2PagedBuildingResult'
        '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:
    V2PagedBuildingResult:
      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 Buildings on this page of results.
          items:
            $ref: '#/components/schemas/V2BuildingModel'
        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`
    V2BuildingModel:
      type: object
      description: >-
        Representation of a building. All Buildings have one Property
        association. Multiple Buildings can be associated with the same Property
        to represent a campus or other multi-building asset.
      properties:
        id:
          type: string
          description: Prophia internal Building ID (UUID)
          readOnly: true
        propertyId:
          type: string
          description: Pointer to the Property this Building is associated with.
          readOnly: true
        buildingName:
          type: string
          description: >-
            Display name of the building. Must be unique within the same
            Property. Can be duplicated with other Buildings in the Account
            (i.e. Two Properties in the Account can have a Building called
            'Building 1').
        address:
          $ref: '#/components/schemas/Address'
          description: Street address of the building.
        onboardingStatus:
          type: string
          description: >-
            How far this building has progressed through Prophia's onboarding
            process. Leases, BuildingSpaces, and Tags are considered incomplete
            until onboarding completes for the Building.
          enum:
            - NOT_STARTED
            - INITIAL_SETUP
            - ONBOARDING_IN_PROGRESS
            - ONBOARDING_COMPLETE
          readOnly: true
        activeStatus:
          type: string
          description: >-
            Operational state of the building record. An ACTIVE status indicates
            that the building has been fully onboarded and handed off by the
            Prophia team. An INACTIVE status indicates a Building that will no
            longer receive updates to its data and is essentially a purely
            historical representation of the asset. Other statuses show the
            Building moving through the systems automated processing states and
            review points.
          enum:
            - ACTIVE
            - INACTIVE
            - WORK_IN_PROGRESS
            - QA_PENDING
            - AI_PROCESSED
          readOnly: true
        customId:
          type: string
          description: >-
            Your external identifier for the building, for cross-referencing
            with your own systems. Prophia does not rely on this value in any
            way.
        implementationManager:
          type: string
          description: >-
            Prophia implementation manager responsible for onboarding and
            reviewing the data in this Building. This is not the account
            manager.
          readOnly: true
        buildingType:
          type: string
          description: >-
            The Asset type for the Building. This is a subjective reference
            value only, is not validated, and does not affect data onboarding.
          enum:
            - OFFICE
            - INDUSTRIAL
            - RETAIL
            - MIXED_USE
            - OTHER
            - LIFE_SCIENCES
            - MEDICAL_OFFICE
            - FLEX
        buildingClass:
          type: string
          description: >-
            Market classification of the building (e.g. A, B, C). This is a
            subjective reference value only, is not validated, and does not
            affect data onboarding.
        metroArea:
          type: string
          description: >-
            Metro market the building belongs to (e.g. Seattle Metropolitan
            Area. This is a subjective reference value only, is not validated,
            and does not affect data onboarding.
        lat:
          type: number
          description: >-
            Latitude in decimal degrees. Derived automatically from the address
            when the building is created and re-geocoded whenever the address is
            changed; coordinates cannot be supplied directly. A geocode that
            fails or returns no match leaves the previously stored coordinates
            in place, so lat/lng may reflect an earlier address; a building
            whose address has never geocoded successfully has no coordinates at
            all.
          readOnly: true
        lng:
          type: number
          description: >-
            Longitude in decimal degrees. Derived alongside lat from the same
            geocode, and subject to the same staleness caveat.
          readOnly: true
        propertyType:
          type: string
          description: Whether the parent property holds a single building or multiple.
          enum:
            - MULTI_BUILDING
            - SINGLE_BUILDING
          readOnly: true
        totalRentableSquareFootage:
          type: integer
          format: int32
          description: >-
            Cached total rentable square footage from the last stacking-plan
            build; may lag current values while leases are in onboarding. Use
            the stacking plan for point-in-time occupancy.
          readOnly: true
        squareFootageLeased:
          type: integer
          format: int32
          description: >-
            Cached leased square footage from the last stacking-plan build; may
            lag current values while leases are in onboarding. For a Building
            Space to count towards leased square footage it must have either an
            active/commenced lease or a lease with a future commencement date
            referencing that space. Use the stacking plan for point-in-time
            occupancy.
          readOnly: true
        squareFootageOccupied:
          type: integer
          format: int32
          description: >-
            Cached occupied square footage from the last stacking-plan build;
            may lag current values while leases are in onboarding. For a
            Building Space to count towards occupied square footage it must have
            an active/commenced lease referencing that space.Use the stacking
            plan for point-in-time occupancy.
          readOnly: true
        squareFootageVacant:
          type: integer
          format: int32
          description: >-
            Cached vacant square footage from the last stacking-plan build; may
            lag current values while leases are in onboarding. For a Building
            Space to count towards vacant square footage, it can't have any
            active/commenced lease referencing that space.Use the stacking plan
            for point-in-time occupancy.
          readOnly: true
        leases:
          type: array
          description: >-
            Leases in this building; only populated when `include=leases` is
            present as a request parameter.
          items:
            $ref: '#/components/schemas/V2LeaseModelEmbedded'
        documents:
          type: array
          description: >-
            Building-level documents (rent rolls, stacking plans); only
            populated when `include=documents` is present as a request
            parameter.
          items:
            $ref: '#/components/schemas/V2LeaseDocModel'
          readOnly: true
        spaces:
          type: array
          description: >-
            Spaces in this building, archived and non-archived alike; only
            populated when `include=spaces` is present as a request parameter.
          items:
            $ref: '#/components/schemas/V2BuildingSpaceModel'
          readOnly: true
        customFields:
          type: array
          description: >-
            The Building's values for its active Building Custom Fields as
            name/value pairs, sorted by field name; only populated when
            `include=customFields` is present as a request parameter. Manage the
            fields and assignments themselves through the Custom Fields
            endpoints.
          items:
            $ref: '#/components/schemas/V2BuildingCustomFieldModel'
          readOnly: true
    Address:
      type: object
      properties:
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state:
          type: string
        country:
          type: string
        zipcode:
          type: string
    V2LeaseModelEmbedded:
      type: object
      description: >-
        V2LeaseModel as embedded in a parent response. This position omits tags,
        documents, subleases. The `include` parameter is one level deep, so they
        are never populated in this position — fetch the resource directly to
        request them.
      properties:
        id:
          type: string
          description: Prophia internal Lease ID (UUID).
          readOnly: true
        accountId:
          type: string
          description: The Account the Lease is associated with.
          readOnly: true
        propertyId:
          type: string
          description: >-
            The propertyId (UUID) of Property the Lease was uploaded to; usually
            the property the Lease was initially occupying suites inside of.
          readOnly: true
        propertyCustomId:
          type: string
          description: >-
            The property's custom external identifier, for cross-referencing
            with your own systems. This value is purely for external reference
            and is unused in Prophia's system.
          readOnly: true
        propertyName:
          type: string
          description: The name of the Property the Lease was uploaded to.
          readOnly: true
        buildingId:
          type: string
          description: The buildingId (UUID) of the Building the Lease was uploaded to.
          readOnly: true
        buildingCustomId:
          type: string
          description: >-
            The building's custom external identifier, for cross-referencing
            with your own systems. This value is purely for external reference
            only and it unused in Prophia's system.
          readOnly: true
        buildingName:
          type: string
          description: The name of the Building the Lease was uploaded to.
          readOnly: true
        buildingType:
          type: string
          description: Asset type of the lease's building.
          enum:
            - OFFICE
            - INDUSTRIAL
            - RETAIL
            - MIXED_USE
            - OTHER
            - LIFE_SCIENCES
            - MEDICAL_OFFICE
            - FLEX
          readOnly: true
        address:
          $ref: '#/components/schemas/Address'
          description: Address of the Building the Lease was uploaded to.
          readOnly: true
        tenantLegalName:
          type: string
          description: >-
            Tenant's legal entity name sourced from the Lease data. Use `dba`
            for the display name.
          readOnly: true
        dba:
          type: string
          description: >-
            Tenant's doing-business-as name — the display name used throughout
            the app.
        customId:
          type: string
          description: >-
            Your custom external identifier for the lease, for cross-referencing
            with your own systems. This value is purely for external reference
            and is unused in Prophia's system.
        url:
          type: string
          description: Deep link to this Lease in the Prophia web app.
          readOnly: true
        leaseStatus:
          type: string
          description: >-
            Headline lease state as shown in the app. On this endpoint it is one
            of `Active`, `Expired`, or `Not Started` — note the spacing and
            casing — but it is typed as a free-form string rather than an enum,
            because the same field name carries a wider set on the v0 API, so do
            not switch on it exhaustively. It is derived, not stored: Prophia
            recomputes it from the lease's commence and expiration dates against
            today, so it changes on its own as those dates pass. Pair with
            `leaseSubStatus` to tell an expired lease from one running
            month-to-month or one that has been vacated post-expiration.
          readOnly: true
        leaseType:
          type: string
          description: >-
            Classification of the agreement. Some lease types have specialized
            Tag sets available to them: GSA_OFFICE and RETAIL leases each have
            unique Tags available for capture that other lease types do not.
            Changing a lease's type removes those specialized Tags from the UI,
            APIs, and Reports, but does not delete them — reverting to the
            matching type brings them back.
          enum:
            - OFFICE
            - GSA_OFFICE
            - RETAIL
            - INDUSTRIAL
            - STORAGE
            - LICENSE_AGREEMENT
            - TELECOM_ANTENNA
            - PARKING_AGREEMENT
            - ROOFTOP_SOLAR
        leasedFloors:
          type: string
          description: >-
            Floors the lease occupies, as a comma-separated string. Derived
            rather than captured: each suite in `suiteNumber` is matched to a
            building space and contributes that space's `floor`, plus any floor
            named directly on a floor-scoped space. A suite that matches no
            building space contributes nothing, and a floor in another building
            is suffixed with `@buildingId` the way cross-building suites are.
            The order is not stable, and the value is rebuilt when Prophia
            consolidates the lease's tags — editing a space's `floor` afterwards
            leaves this stale until the next consolidation.
          readOnly: true
        suiteNumber:
          type: array
          description: >-
            Suites this lease occupies. May include references to Buildings that
            are not the Lease's direct ancestor when the Lease spans multiple
            Buildings or has relocated into a new Building in its lifetime.
          items:
            $ref: '#/components/schemas/V2SpaceModel'
          readOnly: true
        squareFootage:
          type: integer
          format: int32
          description: Leased square footage.
          readOnly: true
        commenceDate:
          type: string
          format: date-time
          description: >-
            Lease commencement, as a calendar date (yyyy-MM-dd) with no time
            zone. See `floatingCommencement` when the date is not yet anchored.
          readOnly: true
        expirationDate:
          type: string
          format: date-time
          description: Lease expiration, as a calendar date (yyyy-MM-dd) with no time zone.
          readOnly: true
        leaseScore:
          $ref: '#/components/schemas/V2LeaseScoreModel'
          description: >-
            Prophia's computed Lease complexity score. Takes into account number
            and type of documents, tag data changes over time, and more.
          readOnly: true
        parent:
          $ref: '#/components/schemas/V2LeaseRef'
          description: Parent Lease, present only if this Lease is a sublease.
          readOnly: true
        leaseSubStatus:
          $ref: '#/components/schemas/V2LeaseSubStatusModel'
          description: >-
            Refines leaseStatus with the lease's current ongoing state
            (month-to-month, year-to-year, holdover) or post-expiration
            transition (vacated, extended). Omitted when none applies.
          readOnly: true
        docCompletionStatus:
          type: string
          description: >-
            Doc-completion rollup for the lease summary; `complete` when all
            Documents in the Lease have `documentStatus=complete`, otherwise
            `incomplete`.
          readOnly: true
        rentType:
          type: string
          description: >-
            Top-level rent classification for the lease (e.g. NNN, Gross). See
            `opexTaxTypes` for per-space classifications, which fall back to
            this value.
          enum:
            - Gross
            - Modified Gross
            - Single Net
            - NNN
            - Net of E
            - NN
            - Net
            - Unknown
          readOnly: true
        opexTaxTypes:
          type: array
          description: >-
            Per-occupied-space operating-expense / tax type, falling back to
            rentType when no per-space mapping exists.
          items:
            $ref: '#/components/schemas/V2OpexTaxTypeModel'
          readOnly: true
        floatingCommencement:
          type: boolean
          description: >-
            True when the lease's commencement date is floating (not anchored to
            a fixed calendar date).
          readOnly: true
        autoRenewalExpirationDates:
          type: array
          description: >-
            Per-space future expiration dates from auto-renewal options;
            excludes each space's pre-auto-renewal (original) expiration.
          items:
            $ref: '#/components/schemas/V2AutoRenewalExpirationDateModel'
          readOnly: true
    V2LeaseDocModel:
      type: object
      description: >-
        Representation of a Lease Document. Each Document belongs to one Lease
        and cannot be duplicated within a single Lease.
      properties:
        id:
          type: string
          description: Prophia internal Document ID (UUID).
          readOnly: true
        filename:
          type: string
          description: >-
            Name of the document from your file system. This can not be
            duplicated for multiple files in the same Lease.
        title:
          type: string
          description: Display title; defaults to the filename when not set.
        numberOfPages:
          type: integer
          format: int32
          description: 1-based count of pages in the Document.
          readOnly: true
        docCategory:
          type: string
          description: >-
            Document classification. Certain Document categories may determine
            which Tags and in-app features the Document is included in. If left
            blank, Prophia's AI will inspect the Document and set it
            accordingly, with a human review to follow. The AI will not
            overwrite an existing category if one is already set.
          enum:
            - Main Lease Agreement
            - Extension - Amendment
            - Expansion - Amendment
            - Contraction - Amendment
            - Move - Amendment
            - Correction - Amendment
            - New Rights - Amendment
            - Other - Amendment
            - Commencement Letter
            - Work Letter
            - Lease Abstract
            - Stacking Plan
            - Floorplan
            - Site Plan
            - Letter of Credit
            - Letter of Intent
            - Certificate of Insurance
            - Notices
            - Termination Notices
            - Assignment and Assumption Agreement
            - Telecom/Antenna Agreement
            - Storage Agreement
            - Other
            - Sublease Agreement
            - Consent to Sublease
            - Parking Agreement
            - Licensing Agreement
            - Guaranty
            - Estoppel
            - Management Office Agreement
            - Loan Agreement
            - Letter Agreement
            - JV Agreement
            - Closing Document
            - Purchase & Sale Agreement
            - Management Agreement
            - Brokerage Listing Agreement
            - Real Estate Tax Bills
            - Capital Projects
            - Service Agreement
            - Subordination, Non-Disturbance and Attornment Agreement
            - Ground Lease
            - Memorandum of Lease
            - Rent Roll
        createdAt:
          type: string
          format: date-time
          description: When the Document was uploaded to Prophia.
          readOnly: true
        documentStatus:
          type: string
          description: >-
            Processing state: `processing` while the document is in Prophia's AI
            ingestion pipeline, then `incomplete` followed by any account
            specific statuses (defined by/through our operations team) and
            ultimately `complete` when the Document has been fully processed. To
            understand how this plays into the broader onboarding state of the
            Lease and Building see our understanding onboarding conceptual
            guide.
          readOnly: true
        splitStatus:
          type: string
          description: >-
            Whether this Document was split into parts. `single` is an ordinary
            Document, `combined` is an original that was split (its data lives
            on its parts), and `split` is a part cut from an original.
          enum:
            - single
            - combined
            - split
          readOnly: true
        originalDocId:
          type: string
          description: >-
            For a part (`splitStatus` = `split`), the ID of the original
            Document it was cut from. Omitted otherwise.
          readOnly: true
    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.
    V2BuildingCustomFieldModel:
      type: object
      description: >-
        A Building's value for one of the Account's active Building Custom
        Fields.
      properties:
        name:
          type: string
          description: The Custom Field's name.
          readOnly: true
        value:
          type: string
          description: The Building's value for the field.
          readOnly: true
    V2SpaceModel:
      type: object
      description: >-
        Reference to space in a Building: one Building Space suiteNumber, an
        entire floor, the entire Building, or all spaces. `scope` says which of
        those it is, and `name` carries the label — for `BUILDING` and `ALL`
        that label is the sentinel `Entire building` or `All spaces` rather than
        the name of a real Building Space. The `ALL` scope means all suites in
        the relevant context are referenced: a Tag with `scope: ALL` refers to
        every suite defined in the suiteNumber tag belonging to that Document or
        Lease.
      properties:
        name:
          type: string
          description: >-
            The space's display name: a suite name that matches
            `BuildingSpace.suiteNumber` by string (scope SUITE), a floor
            designation (scope FLOOR), or the sentinels `Entire building` / `All
            spaces`.
        buildingId:
          type: string
          description: >-
            Building this entry refers to. Can differ from the parent lease's
            own Building when a lease spans multiple buildings or has relocated.
        scope:
          type: string
          description: >-
            Granularity of the reference: SUITE (one suite), FLOOR (a whole
            floor), BUILDING (the entire building), or ALL (all spaces).
          enum:
            - BUILDING
            - FLOOR
            - SUITE
            - ALL
    V2LeaseScoreModel:
      type: object
      properties:
        score:
          type: integer
          format: int32
          description: Prophia's complexity score for the lease's extracted record.
        missingMLA:
          type: boolean
          description: >-
            True when no primary Agreement (usually a Main Lease Agreement)
            document has been identified for the lease.
    V2LeaseRef:
      type: object
      description: >-
        Lightweight reference to another lease (e.g. the parent lease of a
        sublease, or a sublease of a primary lease). When the referenced lease's
        consolidated summary is available, leaseStatus and leaseSubStatus
        reflect its current derived state.
      properties:
        id:
          type: string
          description: The Lease id (UUID) of the referenced Lease.
        url:
          type: string
          description: Deep link to this Lease in the Prophia web app.
        leaseStatus:
          type: string
          description: >-
            Current
            [`leaseStatus`](/api-reference/v2/leases/get-lease#response-lease-status)
            of the referenced lease, when available.
        leaseSubStatus:
          $ref: '#/components/schemas/V2LeaseSubStatusModel'
          description: >-
            Current
            [`leaseSubStatus`](/api-reference/v2/leases/get-lease#response-lease-sub-status)
            of the referenced lease, when one applies.
    V2LeaseSubStatusModel:
      type: object
      description: >-
        Refinement of leaseStatus. Captures the lease's current ongoing state —
        month-to-month, year-to-year, or holdover — or whether it has
        transitioned post-expiration to vacated or extended. Omitted when none
        of those applies.
      properties:
        status:
          type: string
          description: The sub-status that currently applies to the lease.
          enum:
            - MONTH_TO_MONTH
            - YEAR_TO_YEAR
            - HOLDOVER
            - VACATED
            - EXTENDED
        startDate:
          type: string
          format: date-time
          description: Date the lease entered this sub-status, when known.
    V2OpexTaxTypeModel:
      type: object
      description: >-
        Operating-expense / tax recovery classification for a single occupied
        Building Space. Falls back to the lease-level rentType when no explicit
        per-space mapping exists.
      properties:
        space:
          $ref: '#/components/schemas/V2SpaceModel'
          description: Space (suite/floor) this classification applies to.
        opexTaxType:
          type: string
          description: >-
            Opex / tax type label (e.g. NNN, Gross). Resolved from the lease's
            per-space mapping; rentType is used as a fallback.
          enum:
            - Gross
            - Modified Gross
            - Single Net
            - NNN
            - Net of E
            - NN
            - Net
            - Unknown
    V2AutoRenewalExpirationDateModel:
      type: object
      description: >-
        Future expiration dates that arise from auto-renewal options on a single
        space. Excludes the lease's own current expiration date.
      properties:
        space:
          $ref: '#/components/schemas/V2SpaceModel'
          description: >-
            Space the auto-renewal expirations apply to. The data in this model
            can be referenced to Building Spaces.
        dates:
          type: array
          description: >-
            Ordered list of future expiration dates for the space built from
            applying captured auto-renewal periods to the Lease's original
            expiration date.
          items:
            type: string
            format: date-time
  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.