RentCheck Maintenance Reports API

The Maintenance Reports API from RentCheck — 2 operation(s) for maintenance reports.

OpenAPI Specification

rentcheck-maintenance-reports-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: RentCheck REST Account Settings Maintenance Reports 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: Maintenance Reports
paths:
  /v1/maintenance_reports:
    post:
      summary: Create a maintenance report
      tags:
      - Maintenance Reports
      description: This resource allows you to create a Maintenance Report.
      parameters:
      - in: header
        name: x-app-id
        required: true
        description: 'Creation-source identifier. Read from the request headers and required

          by request validation — omitting it returns a 400 `"appId" is required`.

          '
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/maintenance_report_create_request_model'
      responses:
        '201':
          description: Returns the created maintenance report
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 201
                  data:
                    $ref: '#/components/schemas/api_maintenance_report'
        '400':
          description: "Bad request — request body validation failed, or one of\nthe cross-flag checks rejected the create. The request is wrapped\nunder `data`, and the `x-app-id` header is additionally required to\npopulate `appId`. Examples:\n  - `\"data.name\" is required`\n  - `\"data.organize_by\" is required`\n  - `\"data.organize_by\" must be one of [responsibility, room, skill]`\n  - `\"data.flags\" is required`\n  - `\"data.flags[0].id\" is required`\n  - `\"data.flags[0].feature_id\" is required`\n  - `\"appId\" is required` — surfaces when the `x-app-id` header is\n    missing.\n  - `All features should belong to the same inspection`\n"
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: 'Forbidden — the caller does not have access to this maintenance report. Access is

            delegated to the underlying inspection that the requested flags belong to; if the

            caller cannot access that inspection, the create is rejected with the error string below.

            '
          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 this maintenance report
    delete:
      summary: Delete a maintenance report
      tags:
      - Maintenance Reports
      description: This resource allows you to delete a Maintenance Report.
      parameters:
      - name: id[]
        in: query
        description: 'Maintenance Report IDs. Repeat the parameter to send multiple values

          (e.g. `?id[]=abc&id[]=def`).

          '
        required: true
        style: form
        explode: true
        schema:
          type: array
          minItems: 1
          items:
            type: string
            minLength: 1
      responses:
        '204':
          description: 'Confirmation of deletion. Returned even when none of the supplied

            ids matched — the request short-circuits when the ID set resolves

            to an empty list of reports, so this endpoint does not emit a 404

            for unknown ids.

            '
        '400':
          description: 'Bad request — query string validation failed.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    enum:
                    - '"data.ids" is required'
                    - '"data.ids" must contain at least 1 items'
                    example: '"data.ids" must contain at least 1 items'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: 'Forbidden — the caller does not have access to at least one of the

            requested maintenance reports.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  error:
                    type: string
                    enum:
                    - User does not have access to this maintenance report
                    example: User does not have access to this maintenance report
  /v1/maintenance_reports/{maintenanceReportId}:
    get:
      summary: Get a maintenance report by ID
      tags:
      - Maintenance Reports
      description: Get a maintenance report by ID
      parameters:
      - name: maintenanceReportId
        in: path
        description: Maintenance Report ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the requested maintenance report
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_maintenance_report'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Forbidden — the caller does not have access to this maintenance report.
          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 this maintenance report
        '404':
          description: Not Found — `maintenance report not found`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: maintenance report not found
components:
  schemas:
    api_maintenance_report:
      type: object
      required:
      - id
      - name
      - organize_by
      - created_by
      - inspection_date
      - created_date
      - inspection
      - property
      - maintenance_flags
      properties:
        id:
          type: string
          description: Entity ID
          example: 00BRcZPSakXz6w7RYoE
        name:
          type: string
          description: A name for the new report
          example: Move-out maintenance report
        organize_by:
          type: string
          description: Group to display when viewing the report
          example: responsibility
          enum:
          - responsibility
          - room
          - skill
        created_by:
          type: object
          required:
          - name
          properties:
            name:
              type: string
              description: Name of user that created the report
        inspection_date:
          type: string
          description: Inspection creation date, ISO format
          example: 2022-01-15 00:00:00
        created_date:
          type: string
          description: Report creation date, ISO format
          example: 2022-01-15 00:00:00
        inspection:
          type: object
          description: The inspection info from where the report originates.
          required:
          - id
          - date
          - template
          properties:
            id:
              type: string
              description: Entity ID
              example: 00BRcZPSakXz6w7RYoE
            date:
              type: string
              description: The inspection due date (legacy) is the original date by which the recipient must complete the inspection.
              example: 2021-12-02 14:15:37.925000
            template:
              type: object
              required:
              - id
              - name
              - internal_label
              - property_type
              - display_name
              properties:
                id:
                  type: string
                  description: Inspection template identifier
                name:
                  type: string
                  description: Inspection template name.
                internal_label:
                  type: string
                  description: Inspection template internal label.
                property_type:
                  type: string
                  description: Inspection template property type.
                display_name:
                  type: string
                  description: Resolved display name for the inspection template, used by clients to render the template title (mirrors `name` for legacy templates).
              description: Inspection template summary (id, name, plus the resolved `display_name`).
        property:
          type: object
          required:
          - id
          - address
          - city
          - zip_code
          description: This is the entity id of the Unit, Building, or Community that the entity is for.
          properties:
            id:
              type: string
              description: Selected entity's property id
              example: 00BRcZPSakXz6w7RYoE
            address:
              type: string
              description: Selected entity's property address
              example: 2001 Red Gates
            address_2:
              type: string
              description: Selected entity's property additional address info
              example: Apt. 4B
            city:
              type: string
              description: Selected entity's property city
              example: New Orleans
            region:
              type: string
              description: Selected entity's property region
              example: Orleans
            zip_code:
              type: string
              description: Selected entity's property zip_code
              example: '70130'
        zip_report_location:
          type: string
          description: Link to the inspections completed ZIP report if previously generated.
        pdf_report_location:
          type: string
          description: Link to the inspections completed PDF report if previously generated.
        maintenance_flags:
          type: array
          items:
            type: object
            required:
            - id
            - feature_id
            - feature
            - section
            - note
            - skill
            - created_date
            - created_by
            - inspection
            - image_urls
            - video_urls
            - maintenance_reports
            - work_orders
            properties:
              id:
                type: string
                description: Entity ID
                example: 00BRcZPSakXz6w7RYoE
              feature_id:
                type: string
                description: Maintenance flag's feature ID.
              feature:
                type: string
                description: Maintenance flag's feature name.
              section:
                type: object
                required:
                - name
                - name_with_ordinal
                - type
                description: Section the feature belongs to.
                properties:
                  name:
                    type: string
                    description: The section name for the feature
                    example: Hallway
                  name_with_ordinal:
                    type: string
                    description: The section name with ordinal for the feature. This is only different from section for rooms like Bedroom, Bathroom, etc
                    example: First Bedroom
                  type:
                    type: string
                    description: The section type for the feature as it was defined in the template
                    enum:
                    - room
                    - section
                    example: room
              note:
                type: string
                description: Maintenance flag's notes
              internal_note:
                type: string
                description: Maintenance flag's internal note.
              skill:
                type: string
                description: Maintenance flag's required skill.
              cost:
                type: number
                description: Maintenance flag's cost
              responsibility:
                type: string
                description: Maintenance flag's responsibility
                enum:
                - OWNER
                - RESIDENT
                - ''
              vendor:
                type: string
                description: Vendor the flag is routed to.
                enum:
                - Latchel
                - AppFolio
                - Yardi
                - Jenark
                - RentCheck
                - Rent Manager
                - Rentvine
              created_date:
                type: string
                description: Flag creation date, ISO format.
                example: 2022-01-15 00:00:00
              created_by:
                type: object
                description: Basic identifying info for the user that created the flag.
                required:
                - id
                - name
                - email
                - type
                properties:
                  id:
                    type: string
                    description: Entity ID
                    example: 00BRcZPSakXz6w7RYoE
                  name:
                    type: string
                  email:
                    type: string
                  type:
                    type: string
                    enum:
                    - Renter
                    - Property Manager
                    - Landlord
                    - System
                    description: User type discriminator.
              image_urls:
                type: array
                description: URLs of images related to the flag.
                items:
                  type: string
              video_urls:
                type: array
                description: URLs of videos related to the flag.
                items:
                  type: string
              custom_fields:
                type: array
                description: Custom-field values captured for this flag.
                items:
                  type: object
                  required:
                  - id
                  - value
                  properties:
                    id:
                      type: string
                      description: Stable identifier of the custom field (chosen by the user when the field was created).
                    value:
                      type: array
                      description: Selected/entered values. Always an array of strings even for single-select fields.
                      items:
                        type: string
              inspection:
                type: object
                required:
                - id
                - label
                - due_date
                - inspection_template
                properties:
                  id:
                    type: string
                    description: Entity ID
                    example: 00BRcZPSakXz6w7RYoE
                  label:
                    type: string
                    description: Inspection label.
                  due_date:
                    type: string
                    description: The inspection due date (legacy) is the original date by which the recipient must complete the inspection.
                    example: 2021-12-02 14:15:37.925000
                  inspection_template:
                    type: object
                    required:
                    - id
                    - name
                    - internal_label
                    - property_type
                    - display_name
                    properties:
                      id:
                        type: string
                        description: Inspection template identifier
                      name:
                        type: string
                        description: Inspection template name.
                      internal_label:
                        type: string
                        description: Inspection template internal label.
                      property_type:
                        type: string
                        description: Inspection template property type.
                      display_name:
                        type: string
                        description: Resolved display name for the inspection template, used by clients to render the template title (mirrors `name` for legacy templates).
                description: Basic info for the inspection the flag belongs to.
              maintenance_reports:
                type: array
                description: Maintenance reports the flag has been included in. Retained for schema compatibility, but always emitted as `[]`.
                items:
                  type: object
                  required:
                  - id
                  - name
                  properties:
                    id:
                      type: string
                      description: Entity ID
                      example: 00BRcZPSakXz6w7RYoE
                    name:
                      type: string
              work_orders:
                type: array
                description: Work orders the flag has been included in.
                items:
                  type: object
                  required:
                  - id
                  - name
                  properties:
                    id:
                      type: string
                      description: Entity ID
                      example: 00BRcZPSakXz6w7RYoE
                    name:
                      type: string
    maintenance_report_create_request_model:
      type: object
      required:
      - name
      - organize_by
      - flags
      properties:
        name:
          type: string
          description: A name for the new report
          example: Move-out maintenance report
        organize_by:
          type: string
          description: Group to display when viewing the report
          example: responsibility
          enum:
          - responsibility
          - room
          - skill
        flags:
          type: array
          description: A list of maintenance flag ids and feature ids. An empty `flags` array results in a 500 rather than a 400 — no minimum length is enforced.
          items:
            type: object
            required:
            - id
            - feature_id
            properties:
              id:
                type: string
                description: Entity ID
                example: 00BRcZPSakXz6w7RYoE
              feature_id:
                type: string
                description: Entity ID
                example: 00BRcZPSakXz6w7RYoE
  responses:
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: integer
                description: HTTP status code
                example: 401
              error:
                type: string
                description: Error message
                enum:
                - token is not valid
                - authorization header is empty
                - authorization header is not valid
                - 'format for Authorization must be: Bearer [token]'
                - refresh token is not valid for resources
                - not well-formed token
                example: token is not valid
  securitySchemes:
    bearerAuth:
      description: Authorization key needed to use the API
      type: http
      scheme: bearer
      bearerFormat: JWT
    x-app-id:
      description: Represents the identification of you application
      type: apiKey
      name: x-app-id
      in: header
      required: true
    x-app-secret:
      description: Represents the secret for your application
      type: apiKey
      name: x-app-secret
      in: header
      required: true