RentCheck Filter Segments API
The Filter Segments API from RentCheck — 2 operation(s) for filter segments.
The Filter Segments API from RentCheck — 2 operation(s) for filter segments.
openapi: 3.1.0
info:
title: RentCheck REST Account Settings Filter Segments 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: Filter Segments
paths:
/v2/filter-segments:
post:
summary: Create a filter segment
x-internal: true
tags:
- Filter Segments
description: 'Creates a saved filter segment — a named, colored, and iconed
inspections-list filter combo — owned by the requesting user.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/filter_segment_create_request_model'
responses:
'201':
description: Returns the created filter segment.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 201
data:
$ref: '#/components/schemas/filter_segment_response_model'
'400':
description: 'Bad request — the request body failed validation. The raw message
identifies the invalid field, e.g. `"data.name" is required`,
`"data.color" must be one of [grey, blue, light_blue, orange, green, red]`,
`"data.filters" must have at least 1 key`, or — when the same value
appears twice in a multi-value filter —
`"data.filters.assigned_to.value[1]" contains a duplicate value`.
'
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'
'404':
description: Not Found — `user not found` (the requesting user does not exist).
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 404
error:
type: string
example: user not found
'409':
description: 'Conflict — a filter segment with this name already exists for the owner
(names are unique per owner, trimmed and case-insensitive).
'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 409
error:
type: string
example: A filter segment with this name already exists
get:
summary: Get all filter segments
x-internal: true
tags:
- Filter Segments
description: "Returns the requesting user's saved filter segments grouped with the\nRentCheck default segments. The response is an object with two keys, each\nan array of segments (same shape as the create/update response):\n\n- `my_segments`: segments the user owns, sorted alphabetically ascending\n by name.\n- `rentcheck_default_segments`: the fixed RentCheck defaults — Needs\n Review, Almost Due, Overdue, Assigned to me, Archived — always present\n in that order. These are not persisted: they carry stable slug ids\n (e.g. `rc-default-needs-review`), a synthetic RentCheck `System`\n identity for `created_by` / `updated_by` / `owned_by`, and epoch\n timestamps. The Almost Due / Overdue date windows are relative to the\n current day, and Assigned to me is scoped to the requesting user.\n"
responses:
'200':
description: Returns the user's segments and the RentCheck default segments.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
type: object
required:
- my_segments
- rentcheck_default_segments
properties:
my_segments:
type: array
description: Segments owned by the user, sorted alphabetically ascending by name.
items:
$ref: '#/components/schemas/filter_segment_response_model'
rentcheck_default_segments:
type: array
description: The fixed RentCheck default segments, always in the order Needs Review, Almost Due, Overdue, Assigned to me, Archived.
items:
$ref: '#/components/schemas/filter_segment_response_model'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found — `user not found` (the requesting user does not exist).
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 404
error:
type: string
example: user not found
/v2/filter-segments/{filterSegmentId}:
delete:
summary: Delete a filter segment
x-internal: true
tags:
- Filter Segments
description: 'Hard-deletes a saved filter segment. Only the segment owner can delete
it.
'
parameters:
- name: filterSegmentId
in: path
description: Filter segment ID (UUID)
required: true
schema:
type: string
format: uuid
responses:
'204':
description: Successful deletion of the filter segment. Empty body.
'400':
description: 'Bad request — the path parameter failed validation, e.g.
`"filterSegmentId" must be a valid GUID`.
'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 400
error:
type: string
example: '"filterSegmentId" must be a valid GUID'
'401':
$ref: '#/components/responses/401'
'403':
description: 'Forbidden — the requesting user is not the owner of the segment.
'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 403
error:
type: string
example: only the segment owner can delete it
'404':
description: Not Found — `filter segment not found (<id>)`.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 404
error:
type: string
example: filter segment not found (3f8a2c1e-1111-2222-3333-444455556666)
put:
summary: Update a filter segment
x-internal: true
tags:
- Filter Segments
description: 'Updates a saved filter segment owned by the requesting user. This is a
full replace — all fields are required. Only the segment owner can edit
it; a segment owned by another user is reported as not found.
'
parameters:
- name: filterSegmentId
in: path
required: true
description: Id of the filter segment to update.
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/filter_segment_update_request_model'
responses:
'200':
description: Returns the updated filter segment.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
$ref: '#/components/schemas/filter_segment_response_model'
'400':
description: 'Bad request — the request body failed validation. The raw message
identifies the invalid field, e.g. `"data.name" is required`,
`"data.color" must be one of [grey, blue, light_blue, orange, green, red]`,
`"data.filters" must have at least 1 key`, or — when the same value
appears twice in a multi-value filter —
`"data.filters.assigned_to.value[1]" contains a duplicate value`.
'
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'
'404':
description: 'Not Found — `user not found` (the requesting user does not exist) or
`filter segment not found` (no segment with this id, or the segment
is owned by another user).
'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 404
error:
type: string
example: filter segment not found (2f9d0f3e-8c1a-4b8b-9d2e-2b5f6a4d5e7c)
'409':
description: 'Conflict — another filter segment with this name already exists for
the owner (names are unique per owner, trimmed and case-insensitive).
Keeping the segment''s current name is not a conflict.
'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 409
error:
type: string
example: A filter segment with this name already exists
components:
schemas:
filter_segment_response_model:
type: object
required:
- id
- name
- color
- icon
- filters
- created_by
- updated_by
- owned_by
- created_at
- updated_at
description: A filter segment.
properties:
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
name:
type: string
color:
type: string
enum:
- grey
- blue
- light_blue
- orange
- green
- red
icon:
type: string
enum:
- paint-roller
- traffic-cone
- inbox
- file-signature
- exclamation-triangle
- user-circle
- archive
- hammer
- truck-container
- user-helmet-safety
- house
- house-tree
- house-chimney-crack
- house-flood-water
- snowflake
- sun
- umbrella-simple
- cloud-rainbow
- rainbow
- dog
- raccoon
- city
- roller-coaster
- house-flag
- tree-city
- star-shooting
- clock
- repeat
- pen
- tag
- shower
- bed
- shield-check
- circle-check
- circle-xmark
- files
description: FontAwesome icon name.
filters:
type: object
description: The inspections-list filter combo. At least one filter must be provided.
minProperties: 1
properties:
search:
type: string
archived:
type: boolean
has_flags:
type: boolean
due_date:
type: object
properties:
start_date:
type: string
end_date:
type: string
due_date_legacy:
type: object
properties:
start_date:
type: string
end_date:
type: string
completed_date:
type: object
properties:
start_date:
type: string
end_date:
type: string
assigned_to:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
team:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
- none_of
inspection_template:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
- none_of
inspection_status:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
- none_of
rating:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
property:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
- none_of
review_step:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
created_by:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
- none_of
created_by:
type: object
required:
- id
- name
- email
- type
description: Basic user identity fields.
properties:
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
name:
type: string
description: Name of the user
email:
type: string
description: Email of the user
type:
type: string
enum:
- Renter
- Property Manager
- Landlord
- System
description: User type discriminator.
updated_by:
type: object
required:
- id
- name
- email
- type
description: Basic user identity fields.
properties:
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
name:
type: string
description: Name of the user
email:
type: string
description: Email of the user
type:
type: string
enum:
- Renter
- Property Manager
- Landlord
- System
description: User type discriminator.
owned_by:
type: object
required:
- id
- name
- email
- type
description: Basic user identity fields.
properties:
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
name:
type: string
description: Name of the user
email:
type: string
description: Email of the user
type:
type: string
enum:
- Renter
- Property Manager
- Landlord
- System
description: User type discriminator.
created_at:
type: string
format: date-time
description: ISO timestamp.
updated_at:
type: string
format: date-time
description: ISO timestamp.
filter_segment_update_request_model:
type: object
required:
- name
- color
- icon
- filters
description: Request body for updating a filter segment. Full replace — same shape and rules as create.
properties:
name:
type: string
description: Segment name. Must be unique per owner (trimmed, case-insensitive); keeping the segment’s current name is allowed.
color:
type: string
enum:
- grey
- blue
- light_blue
- orange
- green
- red
icon:
type: string
enum:
- paint-roller
- traffic-cone
- inbox
- file-signature
- exclamation-triangle
- user-circle
- archive
- hammer
- truck-container
- user-helmet-safety
- house
- house-tree
- house-chimney-crack
- house-flood-water
- snowflake
- sun
- umbrella-simple
- cloud-rainbow
- rainbow
- dog
- raccoon
- city
- roller-coaster
- house-flag
- tree-city
- star-shooting
- clock
- repeat
- pen
- tag
- shower
- bed
- shield-check
- circle-check
- circle-xmark
- files
description: FontAwesome icon name from the allowlist.
example: house
filters:
type: object
description: The inspections-list filter combo. At least one filter must be provided.
minProperties: 1
properties:
search:
type: string
archived:
type: boolean
has_flags:
type: boolean
due_date:
type: object
properties:
start_date:
type: string
end_date:
type: string
due_date_legacy:
type: object
properties:
start_date:
type: string
end_date:
type: string
completed_date:
type: object
properties:
start_date:
type: string
end_date:
type: string
assigned_to:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
team:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
- none_of
inspection_template:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
- none_of
inspection_status:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
- none_of
rating:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
property:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
- none_of
review_step:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
created_by:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
- none_of
filter_segment_create_request_model:
type: object
required:
- name
- color
- icon
- filters
description: Request body for creating a filter segment.
properties:
name:
type: string
description: Segment name. Must be unique per owner (trimmed, case-insensitive).
color:
type: string
enum:
- grey
- blue
- light_blue
- orange
- green
- red
icon:
type: string
enum:
- paint-roller
- traffic-cone
- inbox
- file-signature
- exclamation-triangle
- user-circle
- archive
- hammer
- truck-container
- user-helmet-safety
- house
- house-tree
- house-chimney-crack
- house-flood-water
- snowflake
- sun
- umbrella-simple
- cloud-rainbow
- rainbow
- dog
- raccoon
- city
- roller-coaster
- house-flag
- tree-city
- star-shooting
- clock
- repeat
- pen
- tag
- shower
- bed
- shield-check
- circle-check
- circle-xmark
- files
description: FontAwesome icon name from the allowlist.
example: house
filters:
type: object
description: The inspections-list filter combo. At least one filter must be provided.
minProperties: 1
properties:
search:
type: string
archived:
type: boolean
has_flags:
type: boolean
due_date:
type: object
properties:
start_date:
type: string
end_date:
type: string
due_date_legacy:
type: object
properties:
start_date:
type: string
end_date:
type: string
completed_date:
type: object
properties:
start_date:
type: string
end_date:
type: string
assigned_to:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate values are rejected.
condition:
type: string
enum:
- any_of
team:
type: object
required:
- value
- condition
properties:
value:
type: array
items:
type: string
description: Filter values. Duplicate
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/rentcheck/refs/heads/main/openapi/rentcheck-filter-segments-api-openapi.yml