RentCheck Work Orders V2 API

The Work Orders V2 API from RentCheck — 1 operation(s) for work orders v2.

OpenAPI Specification

rentcheck-work-orders-v2-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: RentCheck REST Account Settings Work Orders 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: Work Orders V2
paths:
  /v2/work_orders:
    get:
      x-internal: true
      summary: Get all work orders
      tags:
      - Work Orders V2
      description: Get all work orders
      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: sort_by
        schema:
          type: string
          default: created_date
          enum:
          - created_date
          - property_address
          - property_address_2
          - property_city
          - property_region
          - property_zip_code
          - inspection_type
          - inspection_template
          - name
          - status
        description: Sort results by one of the available fields.
      - in: query
        name: sort_type
        schema:
          type: string
          default: DESC
          pattern: ^(?:[Aa][Ss][Cc]|[Dd][Ee][Ss][Cc])$
          example: DESC
        description: 'Sort direction. Accepted case-insensitively — any casing

          of `asc` / `desc` is silently normalised to `ASC` / `DESC`.

          '
      - in: query
        name: search
        schema:
          type: string
        description: Search string to match in several work order's fields
      - in: query
        name: property_id
        schema:
          type: string
        description: Property ID to filter work orders by. Only work orders whose source inspection lives on this property are returned.
      - in: query
        name: inspection_type[]
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
        description: 'List of inspection types to filter work orders. Repeat the parameter

          to send multiple values (e.g. `?inspection_type[]=Move-In&inspection_type[]=Move-Out`).

          '
      - in: query
        name: status[]
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - Created
            - In Progress
            - Completed
            - Canceled
        description: 'List of work order statuses to filter by. Repeat the parameter to

          send multiple values. Allowed individual values are `Created`,

          `In Progress`, `Completed`, and `Canceled`. The raw array is not

          validated, so unknown values are silently ignored — they simply

          return zero matches instead of a 400.

          '
      - in: query
        name: start_created_date
        schema:
          type: string
        description: Value to filter work order creation date by a starting date
      - in: query
        name: end_created_date
        schema:
          type: string
        description: Value to filter work order creation date by an ending date
      responses:
        '200':
          description: Returns all work orders
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/work_order_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'
components:
  schemas:
    work_order_response_model:
      x-internal: true
      type: object
      description: Envelope shared by v1 (`POST /v1/work_orders`) and v2 (`GET /v2/work_orders`). Provider-specific keys (`latchel`, `yardi`, `appfolio`, `jenark`, `rentmanager`, `rentvine`) remain optional and appear only when the work order was synced through that vendor. `property` is required on v1 responses; v2 (`GET /v2/work_orders`) drops the field when the underlying row has no property snapshot, so it is not listed as required here.
      required:
      - id
      - name
      - created_date
      - created_by
      - created_by_name
      - status
      - maintenance_flags
      - organization_id
      - inspection
      properties:
        id:
          type: string
          description: Entity ID
          example: 00BRcZPSakXz6w7RYoE
        name:
          type: string
          description: The name field is the work order name / label.
          example: 'Latchel Job #1'
        created_date:
          type: string
          description: Work order creation date, ISO format.
          example: 2022-01-15 00:00:00
        created_by:
          type: string
          description: User id that created the work order.
        created_by_name:
          type: string
          description: Display name of the user that created the work order.
        organization_id:
          type: string
          description: Organization (subscription) the work order belongs to.
        status:
          type: string
          description: Up to date status of the work order.
        skill:
          type: string
          description: Skill / category selected for the work order.
        zip_report_location:
          type: string
          description: Location of the most recent generated zip report for the work order. Only present on v2 (`GET /v2/work_orders`) responses; v1 responses do not emit this field.
        last_sync_date:
          type: string
          description: ISO timestamp of the latest sync attempt to the work order provider, when one has run. Only present on v2 (`GET /v2/work_orders`) responses; v1 responses do not emit this field.
        inspection:
          type: object
          description: This is the entity id of the inspection that the entity is for.
          properties:
            id:
              type: string
              description: Selected entity's inspection id
              example: 00BRcZPSakXz6w7RYoE
            type:
              type: string
              description: Selected entity's inspection type
              enum:
              - Move-in
              - Move-out
              - Annual
              - Turn
              - Periodic
              - Maintenance Check
              - Exterior
              - Pre-Acquisition
              - RV Lot
              - Maintenance / Safety Check
              - Community Maintenance Check
            date:
              type: string
              description: Selected entity's inspection date, ISO format
              example: 2022-01-15 00:00:00
            template:
              type: object
            completed_date:
              type: string
              description: Inspection completed date in ISO format, when set.
        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'
        maintenance_flags:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Entity ID
                example: 00BRcZPSakXz6w7RYoE
              room:
                type: string
                description: Maintenance flag's room.
              feature:
                type: string
                description: Maintenance flag's feature name.
              feature_id:
                type: string
                description: Maintenance flag's feature ID.
              created_date:
                type: string
                description: Feature creation date, ISO format
                example: 2022-01-15 00:00:00
              created_by:
                type: object
                description: User that created the flag.
                required:
                - id
                - name
                - type
                properties:
                  id:
                    type: string
                    description: Entity ID
                    example: 00BRcZPSakXz6w7RYoE
                  name:
                    type: string
                    description: Name of the user that created the flag.
                  type:
                    type: string
                    enum:
                    - Renter
                    - Property Manager
                    - Landlord
                    - System
                    description: User type discriminator.
              responsibility:
                type: string
                description: Maintenance flag's responsibility
                enum:
                - OWNER
                - RESIDENT
                - ''
              note:
                type: string
                description: Maintenance flag's notes
              image_urls:
                type: array
                description: Maintenance flag's images
                items:
                  type: string
                  description: URL links to images related to the maintenance flags
              cost:
                type: number
                description: Maintenance flag's cost
        latchel:
          type: object
          description: Latchel-specific work order fields, present when the provider is `latchel`.
          additionalProperties: true
        yardi:
          type: object
          description: Yardi-specific work order fields, present when the provider is `yardi`.
          additionalProperties: true
        appfolio:
          type: object
          description: AppFolio-specific work order fields, present when the provider is `appfolio`.
          additionalProperties: true
        jenark:
          type: object
          description: Jenark-specific work order fields, present when the provider is `jenark`.
          additionalProperties: true
        rentmanager:
          type: object
          description: Rent Manager-specific work order fields, present when the provider is `rentmanager`.
          additionalProperties: true
        rentvine:
          type: object
          description: Rentvine-specific work order fields, present when the provider is `rentvine`.
          additionalProperties: true
  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