RentCheck Inspection Features API

The Inspection Features API from RentCheck — 13 operation(s) for inspection features.

OpenAPI Specification

rentcheck-inspection-features-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: RentCheck REST Account Settings Inspection Features 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: Inspection Features
paths:
  /v1/inspections/{inspectionId}/features:
    get:
      summary: Get all features
      tags:
      - Inspection Features
      description: Get all features for a given inspection ID
      parameters:
      - name: inspectionId
        in: path
        description: Inspection ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns all features
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/inspection_feature_response_model'
                  count:
                    type: integer
                    description: Amount of elements in `data`.
                  total_results:
                    type: integer
                    description: Amount of total elements according to search criteria.
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found — `inspection not found`, `property not found`, or `user not found`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: inspection not found
  /v1/inspections/{inspectionId}/features/{featureId}:
    get:
      summary: Get a feature by ID for a given inspection
      tags:
      - Inspection Features
      description: Get a feature by ID and inspection ID
      parameters:
      - name: inspectionId
        in: path
        description: Inspection ID
        required: true
        schema:
          type: string
      - name: featureId
        in: path
        description: Feature ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the requested feature
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/inspection_feature_response_model'
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: inspection feature not found
                    enum:
                    - inspection not found
                    - property not found
                    - inspection feature not found
  /v1/features/{featureId}/rotatePhoto:
    put:
      x-internal: true
      summary: Rotate feature photo
      tags:
      - Inspection Features
      description: Update photo orientation in a feature
      parameters:
      - name: featureId
        in: path
        description: Inspection feature ID.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/feature_rotate_photo_request_model'
      responses:
        '200':
          description: Returns the status code
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: 'Forbidden — the caller is not on the inspection''s `authorized_user_ids`.

            Surfaced as `User doesn''t have permissions`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  error:
                    type: string
                    example: User doesn't have permissions
        '404':
          description: 'Not Found — the feature, the referenced photo on the feature, the

            owning inspection, or the underlying image data could not be

            located.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    enum:
                    - feature not found
                    - photoURL not found
                    - inspection not found
                    - image data not found
                    example: feature not found
  /v1/inspections/{inspectionId}/features/{featureId}/metadata:
    get:
      x-internal: true
      summary: Get image metadata for an inspection feature
      tags:
      - Inspection Features
      description: 'Returns the AI-generated image metadata documents for every photo on a single

        inspection feature. Each entry surfaces the analysis status, the inferred

        damage items, and the maintenance flags currently associated with the

        underlying feature. Available only on subscriptions whose account settings

        have AI image analysis enabled.

        '
      parameters:
      - name: inspectionId
        in: path
        description: Inspection ID
        required: true
        schema:
          type: string
          minLength: 1
      - name: featureId
        in: path
        description: Inspection feature ID (must belong to the supplied inspection)
        required: true
        schema:
          type: string
          minLength: 1
      responses:
        '200':
          description: Returns the list of image metadata documents for the feature.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/image_metadata_get_all_response_model'
                  count:
                    type: integer
                    description: Number of metadata documents in the response.
                    example: 3
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: 'Forbidden — `damage detection not enabled` (the caller''s account settings do

            not have AI image analysis enabled).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  error:
                    type: string
                    example: damage detection not enabled
        '404':
          description: 'Not Found — `inspection not found` or `user not found` (the inspection access

            check fails), `inspection feature not found` (no feature with that id, or it

            does not belong to the supplied inspection), or `subscription not found`

            (the caller has no active subscription).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: inspection feature not found
  /v1/inspections/{inspectionId}/features/{featureId}/metadata/{metadataId}:
    put:
      x-internal: true
      summary: Update image metadata for an inspection feature
      tags:
      - Inspection Features
      description: 'Patch the AI-generated image metadata document for a single photo on an

        inspection feature. Currently only `damage_items[].user_feedback` is editable

        — the supplied damage items are matched by `id` and merged onto the existing

        document. Used by the reviewer experience to ack/correct AI-inferred damage.

        '
      parameters:
      - name: inspectionId
        in: path
        description: Inspection ID
        required: true
        schema:
          type: string
          minLength: 1
      - name: featureId
        in: path
        description: Inspection feature ID (must belong to the supplied inspection)
        required: true
        schema:
          type: string
          minLength: 1
      - name: metadataId
        in: path
        description: Image metadata ID (must belong to the supplied feature)
        required: true
        schema:
          type: string
          minLength: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/image_metadata_update_request_model'
      responses:
        '200':
          description: Returns the updated image metadata document.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_image_metadata'
        '400':
          description: "Bad request — request body validation failed. Examples:\n  - `\"data.damage_items[0].id\" is required`\n  - `\"data.damage_items[0].user_feedback\" must be one of [correct, incorrect]`\n"
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    example: '"data.damage_items[0].id" is required'
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: 'Not Found — `inspection not found` or `user not found` (the inspection access

            check fails), `inspection feature not found` (the feature does not exist or

            does not belong to the supplied inspection), `subscription not found`, or

            `image metadata not found`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: image metadata not found
  /v2/inspections/{inspectionId}/features/{featureId}/review/approve:
    post:
      x-internal: true
      summary: Approve a feature review
      tags:
      - Inspection Features
      description: Approves a previously requested review on a feature. Returns the updated feature.
      parameters:
      - name: inspectionId
        in: path
        required: true
        description: Inspection ID
        schema:
          type: string
      - name: featureId
        in: path
        required: true
        description: Feature ID
        schema:
          type: string
      responses:
        '200':
          description: Returns the updated feature.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_inspection_feature'
        '400':
          description: 'Bad request — the caller''s role is not permitted to approve a feature review

            (`can''t approve a feature review as this role`).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 400
                  error:
                    type: string
                    example: can't approve a feature review as this role
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          description: 'Not Found — `feature not found` when the referenced feature cannot be

            resolved. `inspection not found` can also be returned when the parent

            inspection is missing.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    enum:
                    - feature not found
                    - inspection not found
                    example: feature not found
  /v2/inspections/{inspectionId}/features/{featureId}/flags:
    post:
      x-internal: true
      summary: Create a maintenance flag on a feature
      tags:
      - Inspection Features
      description: Adds a maintenance flag to the given feature. Returns the updated feature.
      parameters:
      - name: inspectionId
        in: path
        required: true
        description: Inspection ID
        schema:
          type: string
      - name: featureId
        in: path
        required: true
        description: Feature ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/maintenance_flag_create_request_model'
      responses:
        '200':
          description: Returns the feature with the new flag attached.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_inspection_feature'
        '400':
          description: 'Bad request — typical messages: `Invalid skill provided`, plus validation

            failures on the request body fields (`note`, `skill`, `responsibility`, etc.

            — see `maintenance_flag_create_request_model`).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 400
                  error:
                    type: string
                    example: Invalid skill provided
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Forbidden — the caller does not have permission to add flags to this feature.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  error:
                    type: string
        '404':
          description: 'Not Found — `inspection feature not found` / `inspection not found`

            when the referenced feature or inspection cannot be resolved.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: inspection feature not found
  /v2/inspections/{inspectionId}/features/{featureId}/flags/{flagId}:
    delete:
      x-internal: true
      summary: Delete a maintenance flag from a feature
      tags:
      - Inspection Features
      description: Removes the named maintenance flag from a feature. Returns the updated feature.
      parameters:
      - name: inspectionId
        in: path
        required: true
        description: Inspection ID
        schema:
          type: string
      - name: featureId
        in: path
        required: true
        description: Feature ID
        schema:
          type: string
      - name: flagId
        in: path
        required: true
        description: Maintenance flag ID
        schema:
          type: string
      responses:
        '200':
          description: Returns the updated feature.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_inspection_feature'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          description: 'Not Found — `maintenance flag not found` when the supplied `flagId`

            is not present on the feature; `inspection not found` can also be

            returned when the parent inspection is missing.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: maintenance flag not found
    put:
      x-internal: true
      summary: Upsert a maintenance flag on a feature
      tags:
      - Inspection Features
      description: 'Upserts the named maintenance flag on a feature. If a flag with the

        supplied `flagId` already exists on the feature it is updated in place;

        otherwise a new flag with that id is created and merged with the request

        body. Returns the updated feature. A nonexistent `flagId` is never a

        source of 404s — once the route has matched, an unknown id triggers the

        create branch instead. (Omitting the `{flagId}` path segment entirely

        still fails because the segment is required.)

        '
      parameters:
      - name: inspectionId
        in: path
        required: true
        description: Inspection ID
        schema:
          type: string
      - name: featureId
        in: path
        required: true
        description: Feature ID
        schema:
          type: string
      - name: flagId
        in: path
        required: true
        description: Maintenance flag ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/maintenance_flag_upsert_request_model'
      responses:
        '200':
          description: Returns the updated feature.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_inspection_feature'
        '400':
          description: 'Bad request — typical messages: `Invalid skill provided`, plus validation

            failures on the request body fields (`note`, `skill`, `responsibility`, etc.

            — see `maintenance_flag_upsert_request_model`).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 400
                  error:
                    type: string
                    example: Invalid skill provided
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          description: 'Not Found — `feature not found` or `user not found`, or `inspection

            feature not found` / `inspection not found` when the referenced feature

            or inspection cannot be resolved. A missing `flagId` is NOT a 404 —

            the endpoint creates the flag on demand.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    enum:
                    - feature not found
                    - user not found
                    - inspection feature not found
                    - inspection not found
                    example: feature not found
  /v2/inspections/{inspectionId}/features/{featureId}/revision:
    delete:
      x-internal: true
      summary: Delete a revision request on a feature
      tags:
      - Inspection Features
      description: Cancels an outstanding revision request on a feature. Returns the updated feature.
      parameters:
      - name: inspectionId
        in: path
        required: true
        description: Inspection ID
        schema:
          type: string
      - name: featureId
        in: path
        required: true
        description: Feature ID
        schema:
          type: string
      responses:
        '200':
          description: Returns the updated feature.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_inspection_feature'
        '400':
          description: 'Bad request — the caller''s role is not permitted to delete a revision

            (`can''t delete a revision as this role`).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 400
                  error:
                    type: string
                    example: can't delete a revision as this role
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          description: 'Not Found — `inspection feature not found` / `user not found` when the

            referenced resource cannot be resolved. `inspection not found` can also

            be returned when the parent inspection is missing.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    enum:
                    - inspection feature not found
                    - user not found
                    - inspection not found
                    example: inspection feature not found
    put:
      x-internal: true
      summary: Upsert a revision request on a feature
      tags:
      - Inspection Features
      description: 'Creates or updates the revision request on a feature. Reviewers use this to ask the performer to redo a feature; the performer''s subsequent edits set `revision.updated` to true.

        '
      parameters:
      - name: inspectionId
        in: path
        required: true
        description: Inspection ID
        schema:
          type: string
      - name: featureId
        in: path
        required: true
        description: Feature ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/inspection_feature_revision_request_model'
      responses:
        '200':
          description: Returns the updated feature.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_inspection_feature'
        '400':
          description: 'Bad request — request body validation failed, or the caller''s role is

            not permitted to request a revision (`can''t request a revision as this role`).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 400
                  error:
                    type: string
                    example: can't request a revision as this role
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          description: 'Not Found — `inspection feature not found` / `user not found` when the

            referenced resource cannot be resolved. `inspection not found` can also

            be returned when the parent inspection is missing.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    enum:
                    - inspection feature not found
                    - user not found
                    - inspection not found
                    example: inspection feature not found
  /v2/inspections/{inspectionId}/features/{featureId}/edit:
    put:
      x-internal: true
      summary: Edit an inspection feature
      tags:
      - Inspection Features
      description: 'Applies a partial update to an existing inspection feature (rating, responses, notes, media). Returns the updated feature.

        '
      parameters:
      - name: inspectionId
        in: path
        required: true
        description: Inspection ID
        schema:
          type: string
      - name: featureId
        in: path
        required: true
        description: Feature ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/inspection_feature_edit_request_model'
      responses:
        '200':
          description: Returns the updated feature.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_inspection_feature'
        '400':
          description: 'Bad request — request body validation failed (e.g. inv

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