Propertyware Documents API

Resources providing access to documents.

Operations 6

GET /docs Retrieve all documents #
POST /docs Upload a document #
GET /docs/{documentId} Retrieve a document #
PUT /docs/{documentId} Update a document #
DELETE /docs/{documentId} Delete a document (BETA) #
GET /docs/{documentId}/download Download a document #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/propertyware-documents-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

propertyware-documents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: "\uFEFF\n\n# Introduction\n\nWelcome to Propertyware’s API—a powerful, RESTful programming interface that lets you leverage valuable Propertyware data."
  version: '1.0'
  title: Open API, powered by Propertyware Documents API
  contact:
    name: Propertyware
    email: support@propertyware.com
  x-logo:
    url: logo.png
    backgroundColor: '#fff'
    altText: Propertyware, A RealPage Company
    href: https://www.propertyware.com
servers:
- url: https://api.propertyware.com/pw/api/rest/v1
security:
- clientId: []
- clientSecret: []
- organizationId: []
tags:
- name: Documents
  description: Resources providing access to documents.
paths:
  /docs:
    get:
      tags:
      - Documents
      summary: Retrieve all documents
      description: 'Retrieves a list of documents associated with a specific entity.


        Required permission:

        DOCUMENTS - Read


        Sortable by: createddate, lastmodifieddatetime, id'
      operationId: retrieveAllDocuments
      parameters:
      - name: offset
        in: query
        description: '`offset` indicates the position of the first record to return. The offset is zero-based and the default is 0.'
        required: false
        schema:
          type: integer
          format: int32
      - name: limit
        in: query
        description: '`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 500 and the default is 100.'
        required: false
        schema:
          type: integer
          format: int32
          default: 100
      - name: lastModifiedDateTimeStart
        in: query
        description: 'Filters results to any item modified on or after the date time specified. '
        required: false
        schema:
          type: string
          format: date-time
      - name: lastModifiedDateTimeEnd
        in: query
        description: 'Filters results to any item modified on or prior to the date time specified. '
        required: false
        schema:
          type: string
          format: date-time
      - name: orderby
        in: query
        description: Indicates the field(s) and direction to sort the results in the response.
        required: false
        schema:
          type: string
      - name: entityType
        in: query
        description: Filters results to documents associated with a specific entity type.
        required: true
        schema:
          type: string
          enum:
          - APPOINTMENT
          - ASSET
          - BILL
          - BANK_DEPOSIT
          - BILL_PAYMENT
          - BUILDING
          - CONTACT
          - FLOOR_PLAN
          - DESKTOP
          - EMAIL_TEMPLATE
          - INSPECTION
          - LEASE
          - OTHER
          - PORTFOLIO
          - PROSPECT
          - RECONCILIATION
          - TASK
          - TRANSACTION
          - UNIT
          - VENDOR
          - WORK_ORDER
      - name: entityId
        in: query
        description: Filters results to documents associated with a specific entity id. entity ID is not required for “DESKTOP” and “OTHER”. Remaining entities need “entity ID”.
        required: false
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          headers:
            X-Total-Count:
              description: The total resultset count
              schema:
                type: integer
                format: int64
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Document'
        '400':
          description: Unable to process the request due to malformed request syntax or invalid parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: The API key couldn't be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The supplied credentials don't have permissions to access the resources.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Documents
      summary: Upload a document
      description: 'Upload a document


        Required permission:

        DOCUMENTS - Write'
      operationId: uploadDocument
      parameters:
      - name: entityId
        in: query
        description: Unique identifier of an entity document is attached to.
        required: true
        schema:
          type: integer
          format: int64
      - name: publishToTenantPortal
        in: query
        description: Indicates if the document is published to the tenant portal.
        required: false
        schema:
          type: boolean
      - name: publishToOwnerPortal
        in: query
        description: Indicates if the document is published to the owner portal.
        required: false
        schema:
          type: boolean
      - name: entityType
        in: query
        description: Entity type Document is attached to (Asset, Bill, Bank Deposit, Building, Desktop, Lease, Owner, Portfolio, Prospect, Prospect Contact, Tenant, Unit, Vendor, Check, Credit, Service Agreement, Journal Entry, Work Order)
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  description: file
                  type: string
                  format: binary
              required:
              - file
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        '400':
          description: Unable to process the request due to malformed request syntax or invalid parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: The API key couldn't be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The supplied credentials don't have permissions to access the resources.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /docs/{documentId}:
    get:
      tags:
      - Documents
      summary: Retrieve a document
      description: 'Retrieves the metadata of a specific document.


        Required permission:

        DOCUMENTS - Read'
      operationId: retrieveDocument
      parameters:
      - name: documentId
        in: path
        description: ID of the document to retrieve
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        '400':
          description: Unable to process the request due to malformed request syntax or invalid parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: The API key couldn't be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The supplied credentials don't have permissions to access the resources.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Entity not found.
    put:
      tags:
      - Documents
      summary: Update a document
      description: 'Updates the metadata of a specific document.


        Required permission:

        DOCUMENTS - Write'
      operationId: updateDocument
      parameters:
      - name: documentId
        in: path
        description: ID of the document to be updated
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDocument'
        description: updateDocument
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        '400':
          description: Unable to process the request due to malformed request syntax or invalid parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: The API key couldn't be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The supplied credentials don't have permissions to access the resources.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Entity not found.
    delete:
      tags:
      - Documents
      summary: Delete a document (BETA)
      description: 'Note: Write access is only available to customers who have opted in to our beta program. Please reach out to support if you''d like to be included.


        Deletes a specific document and its associated content.


        Required permission:

        DOCUMENTS - Delete'
      operationId: deleteDocument
      parameters:
      - name: documentId
        in: path
        description: ID of the document to delete
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntity'
        '204':
          description: No Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntity'
        '400':
          description: Unable to process the request due to malformed request syntax or invalid parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: The API key couldn't be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The supplied credentials don't have permissions to access the resources.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Entity not found.
  /docs/{documentId}/download:
    get:
      tags:
      - Documents
      summary: Download a document
      description: 'Retrieve a temporary download URL for a specific document.


        Required permission:

        DOCUMENTS - Read'
      operationId: downloadDocument
      parameters:
      - name: documentId
        in: path
        description: ID of the document to download
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          headers:
            X-Document-Type:
              description: Header indicates the type of a document
              schema:
                type: string
            X-Document-Name:
              description: Header indicates the name of a document
              schema:
                type: string
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ResponseEntity'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntity'
        '400':
          description: Unable to process the request due to malformed request syntax or invalid parameters.
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: The API key couldn't be authorized.
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The supplied credentials don't have permissions to access the resources.
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Entity not found.
components:
  schemas:
    ResponseEntity:
      type: object
      properties:
        body:
          type: object
        statusCode:
          type: string
          enum:
          - '100'
          - '101'
          - '102'
          - '103'
          - '200'
          - '201'
          - '202'
          - '203'
          - '204'
          - '205'
          - '206'
          - '207'
          - '208'
          - '226'
          - '300'
          - '301'
          - '302'
          - '303'
          - '304'
          - '305'
          - '307'
          - '308'
          - '400'
          - '401'
          - '402'
          - '403'
          - '404'
          - '405'
          - '406'
          - '407'
          - '408'
          - '409'
          - '410'
          - '411'
          - '412'
          - '413'
          - '414'
          - '415'
          - '416'
          - '417'
          - '418'
          - '419'
          - '420'
          - '421'
          - '422'
          - '423'
          - '424'
          - '426'
          - '428'
          - '429'
          - '431'
          - '500'
          - '501'
          - '502'
          - '503'
          - '504'
          - '505'
          - '506'
          - '507'
          - '508'
          - '509'
          - '510'
          - '511'
    RESTAPIError:
      type: object
      properties:
        key:
          type: string
        message:
          type: string
    UpdateDocument:
      type: object
      required:
      - fileName
      properties:
        description:
          type: string
          description: Description of the document.
        fileName:
          type: string
          description: Name of the document.
        publishToOwnerPortal:
          type: boolean
          example: false
          description: Indicates if the document is published to the owner portal.
        publishToTenantPortal:
          type: boolean
          example: false
          description: Indicates if the document is published to the tenant portal.
      description: 'Update Document '
    ErrorResponse:
      type: object
      properties:
        errorCode:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/RESTAPIError'
        userMessage:
          type: string
    Document:
      type: object
      properties:
        createdBy:
          type: string
          description: User who created the record.
        createdDateTime:
          type: string
          format: date-time
          description: 'Date and time the record was created. (Timezone: UTC)'
        description:
          type: string
          description: Description of a document.
        entityId:
          type: integer
          format: int64
          description: Unique identifier of an entity document is attached to.
        entityType:
          type: string
          description: Type of an entity document is attached to.
          enum:
          - APPOINTMENT
          - ASSET
          - BILL
          - BANK_DEPOSIT
          - BILL_PAYMENT
          - BUILDING
          - CONTACT
          - FLOOR_PLAN
          - DESKTOP
          - EMAIL_TEMPLATE
          - INSPECTION
          - LEASE
          - OTHER
          - PORTFOLIO
          - PROSPECT
          - RECONCILIATION
          - TASK
          - TRANSACTION
          - UNIT
          - VENDOR
          - WORK_ORDER
        fileName:
          type: string
          description: File name.
        fileType:
          type: string
          description: File type.
        id:
          type: integer
          format: int64
          description: Unique identifier.
        lastModifiedBy:
          type: string
          description: User who last modified the record.
        lastModifiedDateTime:
          type: string
          format: date-time
          description: 'Date and time the record was last modified. (Timezone: UTC)'
        publishToOwnerPortal:
          type: boolean
          example: false
          description: Indicates if the document is published to the owner portal.
        publishToTenantPortal:
          type: boolean
          example: false
          description: Indicates if the document is published to the tenant portal.
  securitySchemes:
    clientId:
      type: apiKey
      in: header
      name: x-propertyware-client-id
    clientSecret:
      type: apiKey
      in: header
      name: x-propertyware-client-secret
    organizationId:
      type: apiKey
      in: header
      name: x-propertyware-system-id