RentCheck Work Orders V2 API
The Work Orders V2 API from RentCheck — 1 operation(s) for work orders v2.
The Work Orders V2 API from RentCheck — 1 operation(s) for work orders v2.
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