RentCheck Residents V2 API
The Residents V2 API from RentCheck — 2 operation(s) for residents v2.
The Residents V2 API from RentCheck — 2 operation(s) for residents v2.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/rentcheck-residents-v2-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: RentCheck REST Residents V2 API
version: 1.0.0
description: '## Mission
At RentCheck, our mission is plain and simple: To make renting fair and transparent for everyone involved.'
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: Residents V2
paths:
/v2/residents:
post:
summary: Create a resident
tags:
- Residents V2
description: This resource allows you to create a Resident in RentCheck. Residents are used to provide contact information for inspections.
parameters:
- in: header
name: x-app-id
required: false
description: 'Optional creation-source identifier. Persisted on the resident''s
`creation_source` field. Used as a fallback when
no `appId` is available on the decoded bearer token.
'
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/resident_v2_create_request_model'
responses:
'200':
description: Returns the created resident
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
$ref: '#/components/schemas/resident_v2_response_model'
'400':
description: "Bad request — request body failed validation. The raw message\nidentifies the invalid field, e.g.:\n - `\"data.first_name\" is required`\n - `\"data.last_name\" is required`\n - `\"data.emails\" must contain at least 1 items`\n - `\"data.emails[0]\" must be a valid email`\n\nInvalid phone numbers are rejected by a custom validator.\n"
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 400
error:
type: string
example: '"data.first_name" is required'
'401':
$ref: '#/components/responses/401'
'403':
description: 'Forbidden — the caller is not a member of the requested `organization_id`.
'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 403
error:
type: string
example: invalid organization
'404':
description: Not Found — `organization not found`.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 404
error:
type: string
example: organization not found
operationId: postV2Residents
x-operation-id-source: derived
get:
x-internal: true
summary: Get all residents
tags:
- Residents V2
description: This resource allows you to list Residents in RentCheck. Supports both the new `filters[...]` / `options[...]` query schema and the legacy `occupancy_status[]` multi-value syntax.
parameters:
- in: query
name: filters[search]
schema:
type: string
description: Search string to match against resident name, email, and phone number.
- in: query
name: filters[deleted]
schema:
type: string
enum:
- 'true'
- 'false'
default: 'false'
description: When `true`, returns soft-deleted residents. Defaults to `false`.
- in: query
name: filters[active]
schema:
type: string
enum:
- 'true'
- 'false'
description: When provided, filters residents by whether they currently have an active occupancy.
- in: query
name: filters[emails]
schema:
type: string
description: Email(s) to filter residents by. Multiple values may be comma-separated — the string is split on `,` and matched by array-overlap. Single-value requests remain a comma-free string.
- in: query
name: filters[property_id]
schema:
type: string
description: Property ID to filter residents by. Only residents with an occupancy on this property are returned.
- in: query
name: filters[occupancy_status][value]
schema:
type: string
pattern: ^(future|past|current)(\|(future|past|current))*$
description: 'Occupancy status(es) to filter residents by. Multiple values should be concatenated with a `|`. Allowed individual values are `future`, `past`, and `current`. When either `filters[occupancy_status][value]` or `filters[occupancy_status][condition]` is supplied, both are required.
'
- in: query
name: filters[occupancy_status][condition]
schema:
type: string
enum:
- any_of
description: Condition to be used to filter by occupancy status. The validator only accepts `any_of`. Must be paired with `filters[occupancy_status][value]` (see above). Note also that `filters[active]` and `filters[occupancy_status]` are mutually exclusive — supplying both is rejected by the request validator.
- in: query
name: occupancy_status[]
deprecated: true
schema:
type: array
items:
type: string
description: Legacy multi-value occupancy status filter. Prefer `filters[occupancy_status][value]`.
- in: query
name: options[pagination][page_size]
schema:
type: integer
default: 20
description: The number of elements in the data collection.
- in: query
name: options[pagination][page_number]
schema:
type: integer
default: 0
description: The page number of the collection. This value is based on the page size.
- in: query
name: options[sort][sort_by]
schema:
type: string
default: first_name
enum:
- first_name
- last_name
- emails
- property_address
- lease_start
- lease_end
- status
description: Sort results by one of the available fields.
- in: query
name: options[sort][sort_type]
schema:
type: string
enum:
- ASC
- DESC
- asc
- desc
default: ASC
description: Sort direction. Case-insensitive.
responses:
'200':
description: Returns the matching residents
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
type: array
items:
$ref: '#/components/schemas/resident_v2_response_model'
count:
type: integer
description: Amount of elements in `data`.
total_results:
type: integer
description: Amount of total elements according to search criteria.
'400':
description: 'The query parameters failed validation. Common causes: `filters[active]` and
`filters[occupancy_status]` supplied together (rejected as mutually exclusive), an
`options[sort][sort_by]` value outside the enum, or a malformed
`filters[occupancy_status][value]` string.
'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 400
error:
type: string
example: '"options.sort.sort_by" must be one of [first_name, last_name, emails, property_address, lease_start, lease_end, status]'
'401':
$ref: '#/components/responses/401'
operationId: getV2Residents
x-operation-id-source: derived
/v2/residents/{id}:
delete:
summary: Delete resident
tags:
- Residents V2
description: Delete selected resident by id
parameters:
- name: id
in: path
description: Resident ID
required: true
schema:
type: string
responses:
'204':
description: Successful deletion of resident
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found — `resident not found`.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 404
error:
type: string
example: resident not found
operationId: deleteV2ResidentsById
x-operation-id-source: derived
get:
summary: Get a resident by ID
tags:
- Residents V2
description: This resource allows you to get a Resident in RentCheck. Residents are used to provide contact information for inspections.
parameters:
- name: id
in: path
description: Resident ID
required: true
schema:
type: string
responses:
'200':
description: Returns the requested resident
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
$ref: '#/components/schemas/resident_v2_response_model'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found — `resident not found`.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 404
error:
type: string
example: resident not found
operationId: getV2ResidentsById
x-operation-id-source: derived
put:
summary: Update a resident
tags:
- Residents V2
description: This resource allows you to update a Resident in RentCheck. Residents are used to provide contact information for inspections.
parameters:
- name: id
in: path
description: Resident ID
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/resident_v2_update_request_model'
responses:
'200':
description: Returns the updated resident
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
$ref: '#/components/schemas/resident_v2_response_model'
'400':
description: 'Bad request — request body failed validation. All body fields are optional;
the raw message identifies the invalid field, e.g.
`"data.emails" must contain at least 1 items` or
`"data.emails[0]" must be a valid email`. Invalid phone numbers are rejected by a
custom validator.
'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 400
error:
type: string
example: '"data.emails[0]" must be a valid email'
'401':
$ref: '#/components/responses/401'
'403':
description: 'Forbidden — the caller is not a member of the requested `organization_id`.
'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 403
error:
type: string
example: invalid organization
'404':
description: Not Found — `resident not found` or `organization not found`.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 404
error:
type: string
example: resident not found
operationId: putV2ResidentsById
x-operation-id-source: derived
components:
schemas:
resident_v2_response_model:
type: object
required:
- id
- first_name
- last_name
- phone_numbers
- emails
- created_date
- updated_date
properties:
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
user:
type: object
required:
- id
- name
properties:
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
name:
type: string
description: User name
first_name:
type: string
description: The Resident's first name.
example: Resident Name
last_name:
type: string
description: The Resident's last name.
example: Resident Lastname
phone_numbers:
type: array
items:
type: string
description: Resident's phone numbers
example:
- '+17035556390'
emails:
type: array
description: Resident's emails
items:
type: string
example:
- resident@email.com
owner_id:
type: string
description: User ID of the resident entity
example: 00BRcZPSakXz6w7RYoE
organization_id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
creation_source:
type: string
description: App that perform the entity creation.
enum:
- zapier
- rentmanager
- flatfile
- 365connect
- appfolio
- yardi
- rentvine
- test_app_id
example: zapier
created_date:
type: string
description: Entity creation date, in ISO format
example: 2022-12-02 14:15:37.925000
updated_date:
type: string
description: Entity last update date, in ISO format
example: 2023-10-04 14:15:37.925000
deleted:
type: boolean
description: Whether the user is deleted or not.
primary_occupancy:
type: object
required:
- id
- tenant_id
- status
- tags
- property
properties:
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
tenant_id:
type: string
description: Entity id of the resident this lease belongs to.
example: 00BRcZPSakXz6w7RYoE
status:
type: string
description: Indicates if the tenant is a future, past or current one
enum:
- future
- past
- current
tags:
type: array
description: Tags associated with the lease if it was evicted or is in notice
items:
type: string
enum:
- evict
- notice
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'
lease_start:
type: string
description: The date the Resident's current lease starts.
example: 2021-01-15 00:00:00
lease_end:
type: string
description: The date the Resident's current lease should end.
example: 2022-01-15 00:00:00
rent:
type: number
description: The dollar amount of the Resident's current rent. Must be ≥ 0.
example: 100
security_deposit:
type: number
description: Unit security deposit
example: 1500
move_out_date:
type: string
description: The date that the Resident is scheduled to move out of the current Property.
example: 2022-01-15 00:00:00
move_in_date:
type: string
description: The date that the Resident is scheduled to move in to the current Property.
example: 2022-01-15 00:00:00
sync_data:
oneOf:
- title: RentManager Sync
type: object
required:
- vendor
- last_sync
properties:
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
vendor:
type: string
enum:
- rentmanager
last_sync:
type: string
description: The last time the resident was synced with external sources.
example: 2024-12-02 14:15:37.925000
x_id:
type: string
location_id:
type: string
integration_id:
type: string
status:
type: string
description: Latest manual-sync lifecycle state, when the integration exposes it.
enum:
- scheduled
- processing
- success
- error
error:
type: string
nullable: true
- title: Yardi Sync
type: object
required:
- vendor
- last_sync
properties:
vendor:
type: string
enum:
- yardi
last_sync:
type: string
description: The last time the resident was synced with external sources.
example: 2024-12-02 14:15:37.925000
code:
type: string
parent_code:
type: string
status:
type: string
description: Latest manual-sync lifecycle state, when the integration exposes it.
enum:
- scheduled
- processing
- success
- error
error:
type: string
nullable: true
- title: AppFolio Sync
type: object
required:
- vendor
- last_sync
properties:
vendor:
type: string
enum:
- appfolio
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
short_property_id:
type: string
short_unit_id:
type: string
last_sync:
type: string
description: The last time the resident was synced with external sources.
example: 2024-12-02 14:15:37.925000
status:
type: string
description: Latest manual-sync lifecycle state, when the integration exposes it.
enum:
- scheduled
- processing
- success
- error
error:
type: string
nullable: true
upload_response:
type: array
items:
type: object
required:
- resource
- resource_id
- uploaded_id
properties:
resource:
type: string
enum:
- units
- properties
- occupancies
resource_id:
type: string
uploaded_id:
type: string
- title: Buildium Sync
type: object
required:
- vendor
- last_sync
properties:
vendor:
type: string
enum:
- buildium
last_sync:
type: string
description: The last time the resident was synced with external sources.
example: 2024-12-02 14:15:37.925000
status:
type: string
description: Latest manual-sync lifecycle state, when the integration exposes it.
enum:
- scheduled
- processing
- success
- error
error:
type: string
nullable: true
- title: Jenark Sync
type: object
required:
- vendor
- last_sync
properties:
vendor:
type: string
enum:
- jenark
last_sync:
type: string
description: The last time the resident was synced with external sources.
example: 2024-12-02 14:15:37.925000
status:
type: string
description: Latest manual-sync lifecycle state, when the integration exposes it.
enum:
- scheduled
- processing
- success
- error
error:
type: string
nullable: true
- title: Rentvine Sync
type: object
required:
- vendor
- last_sync
properties:
vendor:
type: string
enum:
- rentvine
last_sync:
type: string
description: The last time the resident was synced with external sources.
example: 2024-12-02 14:15:37.925000
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
x_id:
type: string
status:
type: string
description: Latest manual-sync lifecycle state, when the integration exposes it.
enum:
- scheduled
- processing
- success
- error
error:
type: string
nullable: true
resident_v2_create_request_model:
type: object
required:
- first_name
- last_name
- emails
properties:
organization_id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
first_name:
type: string
description: The Resident's first name.
example: Resident Name
last_name:
type: string
description: The Resident's last name.
example: Resident Lastname
emails:
type: array
description: Resident's emails
items:
type: string
example:
- resident@email.com
phone_numbers:
type: array
items:
type: string
description: Resident's phone numbers
example:
- '+17035556390'
rentvine_sync:
$ref: '#/components/schemas/rentvine_sync'
user_id:
type: string
description: Optional RentCheck user id to associate with the resident on creation.
example: 00BRcZPSakXz6w7RYoE
rentvine_sync:
type: object
required:
- last_sync
description: Rentvine sync metadata.
properties:
id:
type: string
description: Vendor id. For tenants this is the Rentvine tenant id. For properties this is the Rentvine id with a `unit-` or `building-` prefix indicating the basic property type.
x_id:
type: string
description: Rentvine id without the basic-property-type prefix that RentCheck adds in `id`.
x_property_id:
type: string
description: Rentvine property id. When the property type is a unit, this points at the building id.
last_sync:
type: string
format: date-time
description: ISO-8601 timestamp of the most recent sync. Marked required for schema completeness; in practice the integration engine writes it and callers do not set it on create / update requests (the request validator only checks that the field is an object).
status:
type: string
enum:
- scheduled
- processing
- success
- error
description: Job orchestration and terminal outcome for the most recent sync.
error:
type: string
nullable: true
description: Top-level error message; prefer the per-destination `upload_response[].error` for inspection-upload failures.
upload_response:
type: array
description: Per-destination upload outcomes for inspection PDF uploads.
items:
type: object
additionalProperties: true
excluded_inspection_upload_destinations:
type: array
description: Destinations to skip on the next inspection-report upload retry.
items:
type: string
enum:
- properties
- tenants
- inspections
resident_v2_update_request_model:
type: object
properties:
organization_id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
first_name:
type: string
description: The Resident's first name.
example: Resident Name
last_name:
type: string
description: The Resident's last name.
example: Resident Lastname
emails:
type: array
description: Resident's emails
items:
type: string
example:
- resident@email.com
nullable: true
minItems: 1
phone_numbers:
type: array
items:
type: string
description: Resident's phone numbers
example:
- '+17035556390'
rentvine_sync:
$ref: '#/components/schemas/rentvine_sync'
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