RentCheck Properties V2 API

The Properties V2 API from RentCheck — 4 operation(s) for properties v2.

OpenAPI Specification

rentcheck-properties-v2-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: RentCheck REST Account Settings Properties V2 API
  version: 1.0.0
  description: "\n## Mission\nAt RentCheck, our mission is plain and simple: To make renting fair and transparent for everyone involved. \nRentCheck is a property inspection solution that helps property managers save time and resources with easy self-guided inspections that residents can perform from their smartphone. \n\nWith RentCheck, property managers can avoid tenant coordination, eliminate drive time, and standardize their inspection process. \nWe provides real-time visibility to property managers and owners while bringing transparency to the security deposit deduction process.\n\n## API\nThe RentCheck API lets developers tap into the RentCheck ecosystem, building their own RentCheck-powered applications to enable inspection scheduling and creation and to leverage inspection data for a variety of use cases in the property management, maintenance, and insurance spaces.\n\nThe RentCheck REST API supports JSON requests and responses and features a resource-oriented design that generally adheres to the RFC 7321 HTTP/1.1 standard. \nOur API resources provide access to many RentCheck features, including units, buildings, communities, inspections, and residents.\n\n## Credentials\nIn addition to the Bearer Auth, RentCheck will need to send you an application ID and secret. These are required to generate the required application headers (x-app-id & x-app-secret).\nThese values can be obtained from the [RentCheck API integration page](https://app.getrentcheck.com/account/integrations/rentcheck-api).\n\n## Rate Limiting\nThe RentCheck API enforces rate limits to ensure fair usage and prevent abuse. The rate limits are as follows:\n- **Requests per second**: 8\n- **Requests per minute**: 256\n- **Requests per 10 minutes**: 1024\n\nIf you exceed the rate limits, you will receive a 429 Too Many Requests response.\n\n## Pagination\nWhen interacting with endpoints that return a list of items, the results are paginated to help manage large data sets efficiently. The following parameters control pagination:\n- **page_size** (integer): Defines the number of items returned per page. The maximum allowed value is 250. If a value larger than 250 is provided, it will be automatically clamped to 250. This ensures that the system performs optimally and prevents the server from being overwhelmed by too many items in a single response.\n  - **Maximum**: `250`\n- **page_number** (integer): Indicates the page number to retrieve. Pagination starts at `page 0`. If not specified, the first page (`page 0`) is returned by default.\n### Example Request\n```http\nGET /api/v1/inspections?page_size=300&page_number=2\n```\nIn this example, although the `page_size` parameter is set to `300` **for a query with 1500 total results**, the system will return only `250` items per page, as `300` exceeds the maximum allowed value.\n#### Example Response\n```json\n{\n    \"status\": 200,\n    \"data\": [...],\n    \"count\": 250,\n    \"total_results\": 1500\n}\n```\nThis response shows that the `page_size` has been clamped to `250`, despite the initial request for `300`.\n"
  contact:
    name: RentCheck Support
    email: support@getrentcheck.com
servers:
- url: https://prod-public-api.getrentcheck.com
  description: Production server
security:
- bearerAuth: []
  x-app-id: []
  x-app-secret: []
tags:
- name: Properties V2
paths:
  /v2/properties/buildings:
    get:
      summary: Get buildings
      tags:
      - Properties V2
      description: This resource allows you to get all Buildings. Buildings are properties that can contain a number of individual Units.
      parameters:
      - in: query
        name: page_number
        schema:
          type: integer
          default: 0
        description: The page number of the collection. Zero-indexed.
      - in: query
        name: page_size
        schema:
          type: integer
          default: 20
        description: The number of elements in the data collection.
      - in: query
        name: search
        schema:
          type: string
        description: Search string to match building addresses
      - $ref: '#/components/parameters/V3PropertyListTeamValue'
      - $ref: '#/components/parameters/V3PropertyListTeamCondition'
      - $ref: '#/components/parameters/V3PropertyListTeamIdLegacy'
      - $ref: '#/components/parameters/V3PropertyListLastCompletedStart'
      - $ref: '#/components/parameters/V3PropertyListLastCompletedEnd'
      - in: query
        name: synced
        schema:
          type: string
          enum:
          - synced
          - not synced
        description: Value to filter by one of the available integration sync status
      - in: query
        name: sort_by
        schema:
          type: string
          default: address
          enum:
          - name
          - address
          - last_completed_inspection
        description: Sort results by one of the available fields.
      - $ref: '#/components/parameters/V3PropertyListSortType'
      responses:
        '200':
          description: Returns buildings
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - data
                - count
                - total_results
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/building_response_model'
                  count:
                    type: integer
                    description: Amount of elements in `data`.
                  total_results:
                    type: integer
                    description: Amount of total elements according to search criteria.
        '400':
          description: 'One of the `filters` values failed validation. Only the `filters`

            object is server-side validated; invalid

            `sort_by` / `sort_type` values do NOT surface as 400.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 400
                  error:
                    type: string
                    example: '"filters.synced" must be one of [synced, not synced]'
        '401':
          $ref: '#/components/responses/401'
  /v2/properties/communities:
    get:
      summary: Get communities
      tags:
      - Properties V2
      description: This resource allows you to get all Communities. Communities are properties that contain one or more individual Units.
      parameters:
      - in: query
        name: page_number
        schema:
          type: integer
          default: 0
        description: The page number of the collection. Zero-indexed.
      - in: query
        name: page_size
        schema:
          type: integer
          default: 20
        description: The number of elements in the data collection.
      - in: query
        name: search
        schema:
          type: string
        description: Search string to match community addresses
      - $ref: '#/components/parameters/V3PropertyListTeamValue'
      - $ref: '#/components/parameters/V3PropertyListTeamCondition'
      - $ref: '#/components/parameters/V3PropertyListTeamIdLegacy'
      - $ref: '#/components/parameters/V3PropertyListLastCompletedStart'
      - $ref: '#/components/parameters/V3PropertyListLastCompletedEnd'
      - in: query
        name: synced
        schema:
          type: string
          enum:
          - synced
          - not synced
        description: Value to filter by one of the available integration sync status
      - in: query
        name: sort_by
        schema:
          type: string
          default: address
          enum:
          - name
          - address
          - last_completed_inspection
        description: Sort results by one of the available fields.
      - $ref: '#/components/parameters/V3PropertyListSortType'
      responses:
        '200':
          description: Returns communities
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - data
                - count
                - total_results
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/community_response_model'
                  count:
                    type: integer
                    description: Amount of elements in `data`.
                  total_results:
                    type: integer
                    description: Amount of total elements according to search criteria.
        '400':
          description: 'One of the `filters` values failed validation. Only the `filters`

            object is server-side validated; invalid

            `sort_by` / `sort_type` values do NOT surface as 400.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 400
                  error:
                    type: string
                    example: '"filters.synced" must be one of [synced, not synced]'
        '401':
          $ref: '#/components/responses/401'
  /v2/properties/{propertyId}:
    get:
      x-internal: true
      summary: Get a property by ID
      tags:
      - Properties V2
      description: Returns a single property (unit, building, or community) by its ID.
      parameters:
      - name: propertyId
        in: path
        description: Property ID. Matches the `id` of a unit, building, or community.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the requested property
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    oneOf:
                    - $ref: '#/components/schemas/unit_response_model'
                    - $ref: '#/components/schemas/building_response_model'
                    - $ref: '#/components/schemas/community_response_model'
                    discriminator:
                      propertyName: property_type
                      mapping:
                        ? ''
                        : '#/components/schemas/unit_response_model'
                        Single-Family: '#/components/schemas/unit_response_model'
                        Multi-Family: '#/components/schemas/unit_response_model'
                        Apartment or Condo: '#/components/schemas/unit_response_model'
                        Commercial: '#/components/schemas/unit_response_model'
                        Building: '#/components/schemas/building_response_model'
                        Community: '#/components/schemas/community_response_model'
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found — `property not found` or `users not found`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: property not found
  /v2/properties/units:
    get:
      summary: Get units
      tags:
      - Properties V2
      description: Get units according to logged in user
      parameters:
      - in: query
        name: page_number
        schema:
          type: integer
          default: 0
        description: The page number of the collection. Zero-indexed.
      - in: query
        name: page_size
        schema:
          type: integer
          default: 20
        description: The number of elements in the data collection.
      - in: query
        name: search
        schema:
          type: string
        description: Search string to match unit addresses
      - $ref: '#/components/parameters/V3PropertyListTeamValue'
      - $ref: '#/components/parameters/V3PropertyListTeamCondition'
      - $ref: '#/components/parameters/V3PropertyListTeamIdLegacy'
      - $ref: '#/components/parameters/V3PropertyListLastCompletedStart'
      - $ref: '#/components/parameters/V3PropertyListLastCompletedEnd'
      - in: query
        name: synced
        schema:
          type: string
          enum:
          - synced
          - not synced
        description: Value to filter by one of the available integration sync status
      - in: query
        name: sort_by
        schema:
          type: string
          default: address
          enum:
          - name
          - address
          - last_completed_inspection
        description: 'Sort results by one of the available fields. `name` has no effect

          for units (units have no `name` field); it is preserved in the enum for

          shared use with buildings/communities.

          '
      - $ref: '#/components/parameters/V3PropertyListSortType'
      responses:
        '200':
          description: Returns units
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - data
                - count
                - total_results
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/unit_response_model'
                  count:
                    type: integer
                    description: Amount of elements in `data`.
                  total_results:
                    type: integer
                    description: Amount of total elements according to search criteria.
        '400':
          description: 'One of the `filters` values failed validation. Only the `filters`

            object is server-side validated; invalid

            `sort_by` / `sort_type` values do NOT surface as 400.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 400
                  error:
                    type: string
                    example: '"filters.synced" must be one of [synced, not synced]'
        '401':
          $ref: '#/components/responses/401'
components:
  schemas:
    community_response_model:
      type: object
      required:
      - id
      - name
      - address
      - city
      - zip_code
      - property_type
      - team
      - room_names
      - last_completed_inspection
      - permissions
      - created_date
      - updated_date
      - rooms_info
      - rooms
      - creation_source
      - created_by
      - additional_team_ids
      - building_ids
      properties:
        id:
          type: string
          description: Entity ID
          example: 00BRcZPSakXz6w7RYoE
        x_id:
          type: string
          description: External property ID that maps to RentCheck properties
        team:
          type: object
          required:
          - id
          - name
          - internal_label
          properties:
            id:
              type: string
              description: Entity ID
              example: 00BRcZPSakXz6w7RYoE
            name:
              type: string
              description: The name field is the Team name that is displayed on recipient facing reports and communication.
              example: The best company
            internal_label:
              type: string
              description: The internal label is a convenience label to help differentiate similar teams a user may belong to. It's displayed to you and your team members.
              example: The best company label
          nullable: true
          readOnly: true
          description: Team that owns this community. May be null when the underlying team has been removed.
        property_type:
          type: string
          description: Discriminator value identifying this property as a Community.
          enum:
          - Community
          example: Community
          readOnly: true
        name:
          type: string
          description: This is the name of the Community.
          example: Whispering Pines
        address:
          type: string
          description: This is the street address for the Community.
          example: 2001 Red Gates
        address_2:
          type: string
          description: Additional address information for the Community.
          example: Apt. 4B
        city:
          type: string
          description: This is the city of the Community.
          example: New Orleans
        region:
          type: string
          description: The broader region or area in which the Community is located.
          example: Orleans
        zip_code:
          type: string
          description: This is the Postal Code for the Community.
          example: '70130'
        additional_team_ids:
          type: array
          description: Community can be accessed by multiple teams. This field lists the entity ids of Teams that have access to the Community
          items:
            type: string
            description: Entity ID
            example: 00BRcZPSakXz6w7RYoE
        building_ids:
          type: array
          description: Community can have 1+ Buildings associated with them. building_ids is a list of entity ids of the Buildings that belong to a Community
          items:
            type: string
            description: Entity ID
            example: 00BRcZPSakXz6w7RYoE
        creation_source:
          type: string
          description: App that perform the entity creation.
          enum:
          - zapier
          - rentmanager
          - flatfile
          - 365connect
          - appfolio
          - yardi
          - rentvine
          - test_app_id
          example: zapier
          readOnly: true
        created_by:
          type: object
          properties:
            name:
              type: string
              description: Name of the user that created the property
          description: Info about the user that created the property.
          readOnly: true
        created_date:
          type: string
          description: Entity creation date, in ISO format
          example: 2022-12-02 14:15:37.925000
          readOnly: true
        updated_date:
          type: string
          description: Entity last update date, in ISO format
          example: 2023-10-04 14:15:37.925000
          readOnly: true
        rooms:
          type: array
          items:
            type: string
          deprecated: true
          description: 'Deprecated: derived from `rooms_info` on read; use `rooms_info` instead. An array of strings representing the room configuration for the property. Only rooms that are not bedrooms and bathrooms can be set this way.'
          example:
          - Living Room
          - Den
          - Balcony
          readOnly: true
        room_names:
          type: array
          deprecated: true
          description: 'Deprecated: derived from `rooms_info` on read; use `rooms_info` instead. Returned unit room names.'
          enum:
          - Front Door
          - Back Door
          - Kitchen
          - Dining Room
          - Living Room
          - Family Room
          - Den
          - Office
          - Bedroom
          - First Bedroom
          - Second Bedroom
          - Third Bedroom
          - Fourth Bedroom
          - Fifth Bedroom
          - Sixth Bedroom
          - Seventh Bedroom
          - Eighth Bedroom
          - Ninth Bedroom
          - Tenth Bedroom
          - Bathroom
          - First Bathroom
          - Second Bathroom
          - Third Bathroom
          - Fourth Bathroom
          - Fifth Bathroom
          - Sixth Bathroom
          - Seventh Bathroom
          - Eighth Bathroom
          - Ninth Bathroom
          - Tenth Bathroom
          - Full Bathroom
          - First Full Bathroom
          - Second Full Bathroom
          - Third Full Bathroom
          - Fourth Full Bathroom
          - Fifth Full Bathroom
          - Sixth Full Bathroom
          - Seventh Full Bathroom
          - Eighth Full Bathroom
          - Ninth Full Bathroom
          - Tenth Full Bathroom
          - Half Bathroom
          - First Half Bathroom
          - Second Half Bathroom
          - Third Half Bathroom
          - Fourth Half Bathroom
          - Fifth Half Bathroom
          - Sixth Half Bathroom
          - Seventh Half Bathroom
          - Eighth Half Bathroom
          - Ninth Half Bathroom
          - Tenth Half Bathroom
          - Laundry Room
          - Stairway
          - Stairs
          - Hallway
          - Basement
          - Loft
          - Attic
          - Storage Room
          - Garage
          - Carport
          - Patio
          - Balcony
          - General
          - Property Exterior & Grounds
          - Multi-Unit Common Areas
          readOnly: true
        rooms_info:
          type: array
          description: Structured per-room metadata and the source of truth for room labeling. `rooms` and `room_names` are derived from this. `type` is the no-ordinal room kind (e.g. "Bedroom"), `name` is the ordinal name (e.g. "First Bedroom"), and `label` is a human-meaningful label that defaults to `name`.
          items:
            $ref: '#/components/schemas/room_info'
          readOnly: true
        last_completed_inspection:
          type: object
          readOnly: true
          nullable: true
          required:
          - date
          - id
          - type
          properties:
            date:
              type: string
              description: Inspection completion date, in ISO format
              example: 2022-12-02 14:15:37.925000
            type:
              type: string
              description: The inspection template name
            id:
              type: string
              description: Inspection ID
        permissions:
          type: object
          readOnly: true
          required:
          - can_delete
          - can_create_inspection
          - can_add_to_parent_property
          - can_reassign_team
          properties:
            can_delete:
              type: boolean
            can_create_inspection:
              type: boolean
            can_add_to_parent_property:
              type: boolean
            can_reassign_team:
              type: boolean
        sync_data:
          type: object
          readOnly: true
          nullable: true
          required:
          - vendor
          - last_sync
          description: Single sync envelope used for whichever integration owns the property; null when the property is not synced.
          properties:
            last_sync:
              type: string
              description: Sync date, in ISO format
              example: 2022-12-02 14:15:37.925000
            vendor:
              type: string
              description: The third party vendor for this sync
              enum:
              - rentmanager
              - yardi
              - appfolio
              - jenark
              - rentvine
              - buildium
            status:
              type: string
              description: Latest manual-sync status. Only present on integrations that expose it (e.g. Buildium).
              enum:
              - scheduled
              - processing
              - success
              - error
            error:
              type: string
              nullable: true
              description: Error message from the most recent sync attempt, if any.
            id:
              oneOf:
              - type: string
              - type: integer
              description: External vendor id for the property/unit (string for most vendors; integer for AppFolio).
            x_id:
              type: string
              description: Vendor-native external id echo for the legacy Rentvine / Rent Manager envelope. Kept for debugging/audit parity with the historic `sync_data`.
            location_id:
              type: string
              description: Rent Manager location (property) id — legacy `sync_data`, debugging/audit.
            integration_id:
              type: string
              description: RentCheck integration record id (Rent Manager legacy sync) — debugging/audit.
            short_property_id:
              type: string
              description: AppFolio short property id, when synced from AppFolio.
            short_unit_id:
              type: string
              description: AppFolio short unit id, when synced from AppFolio.
            upload_response:
              type: array
              description: AppFolio per-destination inspection-upload outcomes.
              items:
                type: object
                required:
                - resource
                - resource_id
                - uploaded_id
                properties:
                  resource:
                    type: string
                    enum:
                    - units
                    - properties
                    - occupancies
                  resource_id:
                    type: string
                  uploaded_id:
                    type: string
    unit_response_model:
      type: object
      required:
      - id
      - property_type
      - address
      - city
      - zip_code
      - bedrooms
      - full_bathrooms
      - half_bathrooms
      - building_id
      - latchel_property_id
      - team
      - created_date
      - updated_date
      - rooms_info
      - rooms
      - room_names
      - last_completed_inspection
      - creation_source
      - created_by
      - permissions
      properties:
        id:
          type: string
          description: Entity ID
          example: 00BRcZPSakXz6w7RYoE
        x_id:
          type: string
          description: External property ID that maps to RentCheck properties
        address:
          type: string
          description: This is the street address for the Unit.
          example: 2001 Red Gates
          readOnly: true
        address_2:
          type: string
          description: Additional address information for the Unit.
          example: Apt. 4B
        city:
          type: string
          description: This is the city of the Unit.
          example: New Orleans
        region:
          type: string
          description: The broader region or area in which the Unit is located.
          example: Orleans
        zip_code:
          type: string
          description: This is the Postal Code for the Unit.
          example: '70130'
          readOnly: true
        team:
          type: object
          required:
          - id
          - name
          - internal_label
          properties:
            id:
              type: string
              description: Entity ID
              example: 00BRcZPSakXz6w7RYoE
            name:
              type: string
              description: The name field is the Team name that is displayed on recipient facing reports and communication.
              example: The best company
            internal_label:
              type: string
              description: The internal label is a convenience label to help differentiate similar teams a user may belong to. It's displayed to you and your team members.
              example: The best company label
          nullable: true
          readOnly: true
          description: Team that owns this unit. May be null when the underlying team has been removed.
        created_date:
          type: string
          description: Entity creation date, in ISO format
          example: 2022-12-02 14:15:37.925000
          readOnly: true
        updated_date:
          type: string
          description: Entity last update date, in ISO format
          example: 2023-10-04 14:15:37.925000
          readOnly: true
        rooms:
          type: array
          items:
            type: string
          deprecated: true
          description: 'Deprecated: derived from `rooms_info` on read; use `rooms_info` instead. An array of strings representing the room configuration for the property. Only rooms that are not bedrooms and bathrooms can be set this way.'
          example:
          - Living Room
          - Den
          - Balcony
          readOnly: true
        room_names:
          type: array
          deprecated: true
          description: 'Deprecated: derived from `rooms_info` on read; use `rooms_info` instead. Returned unit room names.'
          enum:
          - Front Door
          - Back Door
          - Kitchen
          - Dining Room
          - Living Room
          - Family Room
          - Den
          - Office
          - Bedroom
          - First Bedroom
          - Second Bedroom
          - Third Bedroom
          - Fourth Bedroom
          - Fifth Bedroom
          - Sixth Bedroom
          - Seventh Bedroom
          - Eighth Bedroom
          - Ninth Bedroom
          - Tenth Bedroom
          - Bathroom
          - First Bathroom
          - Second Bathroom
          - Third Bathroom
          - Fourth Bathroom
          - Fifth Bathroom
          - Sixth Bathroom
          - Seventh Bathroom
          - Eighth Bathroom
          - Ninth Bathroom
          - Tenth Bathroom
          - Full Bathroom
          - First Full Bathroom
          - Second Full Bathroom
          - Third Full Bathroom
          - Fourth Full Bathroom
          - Fifth Full Bathroom
          - Sixth Full Bathroom
          - Seventh Full Bathroom
          - Eighth Full Bathroom
          - Ninth Full Bathroom
          - Tenth Full Bathroom
          - Half Bathroom
          - First Half Bathroom
          - Second Half Bathroom
          - Third Half Bathroom
          - Fourth Half Bathroom
          - Fifth Half Bathroom
          - Sixth Half Bathroom
          - Seventh Half Bathroom
          - Eighth Half Bathroom
          - Ninth Half Bathroom
          - Tenth Half Bathroom
          - Laundry Room
          - Stairway
          - Stairs
          - Hallway
          - Basement
          - Loft
          - Attic
          - Storage Room
          - Garage
          - Carport
          - Patio
          - Balcony
          - General
          - Property Exterior & Grounds
          - Multi-Unit Common Areas
          readOnly: true
        rooms_info:
          type: array
          description: Structured per-room metadata and the source of truth for room labeling. `rooms` and `room_names` are derived from this. `type` is the no-ordinal room kind (e.g. "Bedroom"), `name` is the ordinal name (e.g. "First Bedroom"), and `label` is a human-meaningful label that defaults to `name`.
          items:
            $ref: '#/components/schemas/room_info'
          readOnly: true
        last_completed_inspection:
          type: object
          readOnly: true
          nullable: true
          required:
          - date
          - id
          - type
          properties:
            date:
              type: string
              description: Inspection completion date, in ISO format
              example: 2022-12-02 14:15:37.925000
            type:
              type: string
              description: The inspection template name
            id:
              type: string
              description: Inspection ID
        creation_source:
          type: string
          description: App that perform the entity creation.
          enum:
          - zapier
          - rentmanager
      

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/rentcheck/refs/heads/main/openapi/rentcheck-properties-v2-api-openapi.yml