RentCheck Inspections Templates API

The Inspections Templates API from RentCheck — 4 operation(s) for inspections templates.

OpenAPI Specification

rentcheck-inspections-templates-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: RentCheck REST Account Settings Inspections Templates 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: Inspections Templates
paths:
  /v1/inspection-templates:
    post:
      x-internal: true
      summary: Create an inspection template
      tags:
      - Inspections Templates
      description: 'Create a user inspection template. `subscription_id` is always derived

        from the caller (never accepted from the client), and

        `is_rc_template` / `is_published` / `unpublished_sub_ids` are stamped

        server-side. `team_ids` must be a non-empty subset of the caller''s

        organizations. The supplied `permission_group_ids` are wired to the new

        template, and the created template is returned in the same shape as

        `GET /v1/inspection-templates/{inspectionTemplateId}`.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/inspection_template_create_request_model'
      responses:
        '200':
          description: Returns the created inspection template.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/inspection_template_v1_get_by_id_response_model'
        '400':
          description: 'Bad request — request body validation failed. The following fields

            are required: `name`, `internal_label`, `description`, `team_ids`

            (min 1), `property_type`, `is_fast_track_enabled`, `template_type`,

            `sections`, `contact_info`, and `permission_group_ids`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    example: '"data.name" is required'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Forbidden — `invalid permissions` or `User does not have access to the provided team ids`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  error:
                    type: string
                    example: User does not have access to the provided team ids
        '409':
          description: 'Conflict — the caller has more than one active subscription so the

            target subscription to wire the template to cannot be inferred.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 409
                  error:
                    type: string
                    enum:
                    - user has more than one active subscription
                    example: user has more than one active subscription
        '500':
          description: Internal Server Error — `Failed to create inspection template`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 500
                  error:
                    type: string
                    example: Failed to create inspection template
    get:
      summary: Get all inspection templates
      tags:
      - Inspections Templates
      description: 'Returns the list of inspection templates available to the caller. The optional boolean

        `include_*` / `*_only` filters (passed as the strings `true`/`false`) and the multi-value

        `property_types[]` filter narrow the result set. Templates that have no permission groups

        shared with the caller are filtered out unless `include_unavailable=true`.

        '
      parameters:
      - in: query
        name: include_unavailable
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
        description: When `true`, also include templates that have no permission groups shared with the caller (which would otherwise be excluded as unavailable).
      - in: query
        name: include_deleted
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
        description: When `true`, include templates that have been soft-deleted.
      - in: query
        name: active_only
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
        description: When `true`, only return templates that have been used to create at least one inspection.
      - in: query
        name: published_only
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
        description: When `true`, only return templates marked `published`.
      - in: query
        name: exclude_rc_templates
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
        description: When `true`, exclude RentCheck-managed templates.
      - in: query
        name: resident_templates_only
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
        description: When `true`, only return templates intended for resident self-perform inspections.
      - in: query
        name: validate_pro_templates
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
        description: When `true`, run subscription/permission validation against pro templates and surface only the ones the caller can use.
      - in: query
        name: property_types[]
        schema:
          type: array
          items:
            type: string
            enum:
            - unit
            - building
            - community
        description: Optional list of property types to restrict templates to.
      responses:
        '200':
          description: Returns all inspection templates
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/inspection_template_v1_get_all_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 — the authenticated user''s profile could not be resolved

            (`user not found`).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: user not found
  /v1/inspection-templates/{inspectionTemplateId}:
    delete:
      x-internal: true
      summary: Delete an inspection template
      tags:
      - Inspections Templates
      description: 'Delete an inspection template. The server decides the outcome: when no

        inspection references the template it is permanently removed (the

        document itself and its permission-group references); when inspections

        reference it the template is archived (soft delete) instead, preserving

        historical inspections. Email customizations tied to the template are

        removed in both outcomes. When the template is referenced by an active

        automation that prevents the delete, the response carries

        `status: error` with `error.reason: in-use` and the offending

        automation names instead of removing the record.

        '
      parameters:
      - name: inspectionTemplateId
        in: path
        description: Inspection Template ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Delete outcome envelope.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/inspection_template_delete_response_model'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: 'Forbidden — `cannot delete default inspection templates`, `invalid permissions`,

            or `User does not have access to the inspection template`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  error:
                    type: string
                    example: cannot delete default inspection templates
        '404':
          description: Not Found — `inspection template not found`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: inspection template not found
    get:
      summary: Get an inspection template by ID
      tags:
      - Inspections Templates
      description: Get an inspection template by ID
      parameters:
      - name: inspectionTemplateId
        in: path
        description: Inspection Template ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the requested inspection template
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/inspection_template_v1_get_by_id_response_model'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Forbidden — `invalid permissions` or `User does not have access to the inspection template`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  error:
                    type: string
                    example: User does not have access to the inspection template
        '404':
          description: Not Found — `inspection template not found`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: inspection template not found
    put:
      x-internal: true
      summary: Update an inspection template
      tags:
      - Inspections Templates
      description: 'Update a whitelist of editable inspection-template fields

        (`is_published`, `sections`, `name`, `internal_label`, `description`,

        `team_ids`, `property_type`, `is_fast_track_enabled`, `template_type`,

        `contact_info`, `signature_acknowledgement`). All fields are optional; only the provided ones are

        updated. `id`, `subscription_id` and `is_rc_template` are immutable and

        stripped server-side. When `team_ids` is provided it must be a non-empty

        subset of the caller''s organizations. When the template is referenced by

        an automation that prevents unpublishing, the response carries

        `status: error` with `error.reason: in-use` and the offending automation

        names.

        '
      parameters:
      - name: inspectionTemplateId
        in: path
        description: Inspection Template ID
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/inspection_template_update_request_model'
      responses:
        '200':
          description: Returns the updated inspection template (or an error envelope when blocked).
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/inspection_template_update_response_model'
        '400':
          description: 'Bad request — request body validation failed. The `data` object must

            have at least one whitelisted field, and each supplied optional field

            is type-checked (e.g. `is_fast_track_enabled` boolean, `team_ids`

            array with min 1 item, `property_type` one of `unit|building|community`).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    example: '"data" must have at least 1 key'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: 'Forbidden — `invalid permissions`, `User does not have access to the inspection template`,

            or `User does not have access to the provided team ids` (returned when

            reassigning `team_ids` to teams the caller does not belong to).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  error:
                    type: string
                    enum:
                    - invalid permissions
                    - User does not have access to the inspection template
                    - User does not have access to the provided team ids
                    example: invalid permissions
        '404':
          description: Not Found — `inspection template not found`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: inspection template not found
  /v1/inspection-templates/{inspectionTemplateId}/automations:
    put:
      x-internal: true
      summary: Edit automation flags on an inspection template
      tags:
      - Inspections Templates
      description: 'Toggle automation flags on an inspection template (currently

        `is_fast_track_enabled`). Returns the updated template.

        '
      parameters:
      - name: inspectionTemplateId
        in: path
        description: Inspection Template ID
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/inspection_template_edit_automations_request_model'
      responses:
        '200':
          description: Returns the inspection template with the new automation flags applied.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/inspection_template_v1_get_by_id_response_model'
        '400':
          description: 'Bad request — request body validation failed. `data.is_fast_track_enabled`

            (boolean) is required.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    example: '"data.is_fast_track_enabled" is required'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Forbidden — `invalid permissions`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  error:
                    type: string
                    example: invalid permissions
        '404':
          description: Not Found — `inspection template not found`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: inspection template not found
        '409':
          description: Conflict — the caller has more than one active subscription so the target subscription cannot be inferred.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 409
                  error:
                    type: string
                    example: user has more than one active subscription
  /v1/inspection-templates/{inspectionTemplateId}/permission-groups:
    put:
      x-internal: true
      summary: Replace the permission groups attached to an inspection template
      tags:
      - Inspections Templates
      description: 'Replace the set of permission groups that govern access to the

        inspection template. Returns the updated template.

        '
      parameters:
      - name: inspectionTemplateId
        in: path
        description: Inspection Template ID
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/inspection_template_edit_permission_groups_request_model'
      responses:
        '200':
          description: Returns the inspection template with the new permission groups applied.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/inspection_template_v1_get_by_id_response_model'
        '400':
          description: 'Bad request — request body validation failed. `data.permission_group_ids`

            (array of strings) is required; an empty array is accepted and clears

            all groups.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    example: '"data.permission_group_ids" is required'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: 'Forbidden — the caller has no active subscription, or the resolved

            subscription is `cancelled`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  error:
                    type: string
                    enum:
                    - invalid permissions
                    example: invalid permissions
        '404':
          description: 'Not Found — the inspection template id in the path does not resolve to a

            template the caller can access.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: inspection template not found
        '409':
          description: Conflict — the caller has more than one active subscription so the target subscription cannot be inferred.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 409
                  error:
                    type: string
                    example: user has more than one active subscription
components:
  schemas:
    inspection_template_edit_permission_groups_request_model:
      x-internal: true
      type: object
      required:
      - permission_group_ids
      properties:
        permission_group_ids:
          type: array
          items:
            type: string
          description: IDs of the permission groups that should govern access to this template.
    inspection_template_v1_get_by_id_response_model:
      type: object
      description: Extends the template digest with a full `sections` list. Optional properties (`is_pro`, `new_until`, `subscription_id`, `signature_acknowledgement`, `is_resident_template`, `resident_template_info`) are omitted rather than nulled when not applicable.
      required:
      - id
      - name
      - internal_label
      - display_name
      - description
      - is_rc_template
      - is_fast_track_enabled
      - template_type
      - is_published
      - team_ids
      - property_type
      - created_at
      - contact_info
      - permission_groups
      - is_deleted
      - is_new
      - sections
      properties:
        id:
          type: string
          description: Inspection template ID.
          example: rc_move_in
        name:
          type: string
          description: The inspection template name.
        internal_label:
          type: string
          description: The inspection template internal label.
        display_name:
          type: string
          description: 'Resolved display name for the inspection template: the `internal_label` for users whose teams have access to the template, otherwise the public-facing `name`.'
        description:
          type: string
          description: The inspection template description.
        is_rc_template:
          type: boolean
          description: '`true` indicates that the inspection template was created by RentCheck. While `false` indicates that the inspection template was created by a user.'
        is_fast_track_enabled:
          type: boolean
          description: Indicates whether the template supports fast track or not.
        is_pro:
          type: boolean
          description: Whether the template is gated behind a Pro subscription. Defaults to `false` when absent.
        new_until:
          type: string
          format: date-time
          description: Optional ISO timestamp until which the template is marked as new in the UI.
        is_new:
          type: boolean
          description: Whether the template should be flagged as new (computed from `new_until`).
        is_deleted:
          type: boolean
          description: Whether the template has been soft-deleted (every team has lost access and it is not an RC template). Only set on the API response — not stored on the underlying document.
        template_type:
          type: string
          description: When set to all-rooms the inspection will be created with all the rooms in the property. When set to specific-features the inspection will require features to be selected when creating the inspection.
          enum:
          - all-rooms
          - specific-features
        is_published:
          type: boolean
          description: Indicates if the template will be available for use on inspection creation. For RentCheck templates this is recomputed per subscription against the `unpublished_sub_ids` list.
        team_ids:
          type: array
          items:
            type: string
          description: An array of team ids that have access to this template.
        subscription_id:
          type: string
          description: The subscription id for the user that created this template.
        property_type:
          type: string
          description: What property type this template applies to.
          enum:
          - unit
          - building
          - community
        created_at:
          type: string
          description: The inspection template creation date.
          example: 2021-12-02 14:15:37.925000
        contact_info:
          type: object
          description: Optional contact email / phone surfaced to performers on the inspection.
          properties:
            email:
              type: string
            phone_number:
              type: string
        permission_groups:
          type: array
          description: Permission groups that grant access to this template. Each entry is `{ id, name }`.
          items:
            type: object
            required:
            - id
            - name
            properties:
              id:
                type: string
                description: Entity ID
                example: 00BRcZPSakXz6w7RYoE
              name:
                type: string
                description: Permission group display name.
        signature_acknowledgement:
          $ref: '#/components/schemas/api_signature_acknowledgement'
        is_resident_template:
          type: boolean
          description: Whether the template is a resident-facing template (rendered inside the resident app on the home screen).
        resident_template_info:
          type: object
          description: Optional resident-template metadata used to render the entry in the resident app. Only populated when `is_resident_template` is `true`.
          properties:
            icon:
              type: object
              required:
              - name
              - color
              properties:
                name:
                  type: string
                  enum:
                  - house
                  - truck
                  - clock
                  description: Icon name displayed for the resident template.
                color:
                  type: string
                  description: Icon color (hex string).
            description:
              type: string
          

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