RentCheck Account Settings API

The Account Settings API from RentCheck — 9 operation(s) for account settings.

Operations 14

DELETE /v1/account-settings/email-customizations/{customizationId} Delete an email customization
GET /v1/account-settings/email-customizations/{customizationId} Get an email customization by ID
GET /v1/account-settings/email-customizations List email customizations
POST /v1/account-settings/email-customizations Upsert email customizations
POST /v1/account-settings/email-customizations/test-email Send a test email customization
GET /v1/account-settings Get account settings
PUT /v1/account-settings Update account settings
DELETE /v1/account-settings/rooms Delete custom rooms from account settings
DELETE /v1/account-settings/signature-acknowledgements/{templateId} Delete a signature acknowledgement override
GET /v1/account-settings/signature-acknowledgements Get signature acknowledgements
PUT /v1/account-settings/signature-acknowledgements Update signature acknowledgements
GET /v1/notifications-preferences/{preferencesId} Get notification preferences by token
PUT /v1/notifications-preferences/{preferencesId} Update notification preferences via token
POST /v1/sales/rev-share-prospects Create a rev-share prospect

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/rentcheck-account-settings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

rentcheck-account-settings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: RentCheck REST Account Settings 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: Account Settings
paths:
  /v1/account-settings/email-customizations/{customizationId}:
    delete:
      x-internal: true
      summary: Delete an email customization
      tags:
      - Account Settings
      description: 'Removes the supplied email customization. After deletion the affected template + email type

        falls back to the platform default content.

        '
      parameters:
      - name: customizationId
        in: path
        description: Email customization ID.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: The email customization has been removed.
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found — `subscription not found` or `email customization not found`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    enum:
                    - subscription not found
                    - email customization not found
                    example: email customization not found
    get:
      x-internal: true
      summary: Get an email customization by ID
      tags:
      - Account Settings
      description: 'Returns a single email customization, including the rendered subject

        merge tags available for the template / email type.

        '
      parameters:
      - name: customizationId
        in: path
        description: Email customization ID.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the requested email customization.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_email_customization'
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found — `subscription not found` or `email customization not found`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    enum:
                    - subscription not found
                    - email customization not found
                    example: email customization not found
  /v1/account-settings/email-customizations:
    get:
      x-internal: true
      summary: List email customizations
      tags:
      - Account Settings
      description: 'Returns every email customization configured on the caller''s subscription, one entry per

        inspection template / email type combination.

        '
      responses:
        '200':
          description: Returns the email customizations.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/basic_email_customization'
                  count:
                    type: integer
                    description: Amount of elements in `data`.
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found — `subscription not found` for the caller.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: subscription not found
    post:
      x-internal: true
      summary: Upsert email customizations
      tags:
      - Account Settings
      description: 'Creates or updates the email customization for a given `email_type_id` across one or more

        inspection templates. Returns the resulting set of customizations.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/email_customization_upsert_request_model'
      responses:
        '200':
          description: Returns the upserted email customizations.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/basic_email_customization'
        '400':
          description: Bad request — request validation rejected the body.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    example: '"data.email_type_id" is required'
        '401':
          $ref: '#/components/responses/401'
  /v1/account-settings/email-customizations/test-email:
    post:
      x-internal: true
      summary: Send a test email customization
      tags:
      - Account Settings
      description: 'Renders the supplied email customization content using the supplied property + inspection

        template context and sends it to the listed recipients. Used by the email builder UI to

        preview the final email.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/email_customization_test_request_model'
      responses:
        '200':
          description: Test email accepted for delivery.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
        '400':
          description: Bad request — request validation rejected the body.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    example: '"data.recipients" is required'
        '401':
          $ref: '#/components/responses/401'
  /v1/account-settings:
    get:
      summary: Get account settings
      tags:
      - Account Settings
      description: Get account settings for user's subscription.
      responses:
        '200':
          description: 'Returns the account settings for the caller''s subscription. When the

            caller has no subscription or no settings record yet, the server

            falls back to `defaultAccountSettings` so this endpoint never 4xx''s

            on a successfully authenticated caller.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_account_settings'
        '401':
          $ref: '#/components/responses/401'
    put:
      summary: Update account settings
      tags:
      - Account Settings
      description: Update parameters of the subscription's account settings.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/account_settings_update_request_model'
      responses:
        '200':
          description: Returns the updated account settings
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_account_settings'
        '400':
          description: 'Bad request — request body validation failed, an unknown room name was

            supplied, two-step inspection approval / custom maintenance

            fields / AI damage-detection settings did not pass the

            subscription-aware validations, or one of the validated values is

            otherwise invalid.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: 'Not Found — `subscription not found` (caller has no subscription) or

            `account setting not found` (subscription has no settings record).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: subscription not found
  /v1/account-settings/rooms:
    delete:
      x-internal: true
      summary: Delete custom rooms from account settings
      tags:
      - Account Settings
      description: 'Removes one or more custom rooms from the supplied `property_type` bucket on the caller''s

        account settings.

        Unlike most DELETE endpoints, this one accepts a JSON request body — required because the

        removal is scoped both by `property_type` and by individual room entry.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/account_settings_delete_rooms_request_model'
      responses:
        '200':
          description: Returns the updated account settings.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_account_settings'
        '400':
          description: Bad request — request validation rejected the body.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    example: '"data.property_type" is required'
        '401':
          $ref: '#/components/responses/401'
  /v1/account-settings/signature-acknowledgements/{templateId}:
    delete:
      x-internal: true
      summary: Delete a signature acknowledgement override
      tags:
      - Account Settings
      description: 'Removes the signature acknowledgement override for the supplied inspection template. After

        deletion the template falls back to the subscription-wide acknowledgement (or to the platform

        default if no subscription-wide override is set). Returns the post-delete state in the same

        shape as `GET /v1/account-settings/signature-acknowledgements`.

        '
      parameters:
      - name: templateId
        in: path
        description: Inspection template ID whose acknowledgement override should be removed.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the post-delete state of the signature acknowledgements.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/signature_acknowledgements_response_model'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /v1/account-settings/signature-acknowledgements:
    get:
      x-internal: true
      summary: Get signature acknowledgements
      tags:
      - Account Settings
      description: 'Returns the platform-default signature acknowledgement text, the subscription-wide override

        (if any), and the per-inspection-template overrides (if any).

        '
      responses:
        '200':
          description: Returns the signature acknowledgements.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/signature_acknowledgements_response_model'
        '401':
          $ref: '#/components/responses/401'
    put:
      x-internal: true
      summary: Update signature acknowledgements
      tags:
      - Account Settings
      description: 'Upserts one or more signature acknowledgements. Each entry''s `id` is either the literal string

        `default` (to update the subscription-wide acknowledgement) or an inspection template id

        (to scope the change to a single template). Returns the post-update state in the same shape as

        `GET /v1/account-settings/signature-acknowledgements`.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/signature_acknowledgements_update_request_model'
      responses:
        '200':
          description: Returns the updated signature acknowledgements.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/signature_acknowledgements_response_model'
        '400':
          description: Bad request — request validation rejected the body.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    example: '"data.signature_acknowledgements" is required'
        '401':
          $ref: '#/components/responses/401'
  /v1/notifications-preferences/{preferencesId}:
    get:
      x-internal: true
      security: []
      summary: Get notification preferences by token
      tags:
      - Account Settings
      description: 'Resolve a notifications-preferences document from the encrypted token included

        in RentCheck-issued notification emails. The token decrypts to the recipient''s

        email; if no preferences document exists for that email yet, the default

        preferences shape is returned with `user_email` populated. This endpoint is

        reachable without an authenticated session — clients land on it from

        "manage your notification preferences" links.


        For the equivalent authenticated endpoint, use

        `GET /v1/me/notifications-preferences`.

        '
      parameters:
      - name: preferencesId
        in: path
        description: The encrypted token identifying the recipient. Issued by RentCheck and embedded in notification email links.
        required: true
        schema:
          type: string
          minLength: 1
      responses:
        '200':
          description: Returns the notification preferences for the resolved recipient.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/notifications_preferences_response_model'
        '401':
          description: 'Unauthorized — the token failed to decrypt. Example: `invalid notifications preferences id`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 401
                  error:
                    type: string
                    example: invalid notifications preferences id
    put:
      x-internal: true
      security: []
      summary: Update notification preferences via token
      tags:
      - Account Settings
      description: 'Update a notifications-preferences document for the recipient identified by

        the encrypted token. Used by the "manage your notification preferences"

        experience opened from RentCheck notification emails — no authenticated

        session is required. Supplied fields are merged onto the current preferences;

        if no preferences document exists yet, one is created and then patched.


        For the equivalent authenticated endpoint, use

        `PUT /v1/me/notifications-preferences`.

        '
      parameters:
      - name: preferencesId
        in: path
        description: The encrypted token identifying the recipient. Issued by RentCheck and embedded in notification email links.
        required: true
        schema:
          type: string
          minLength: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/notifications_preferences_update_request_model'
      responses:
        '200':
          description: Returns the updated notification preferences document.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/notifications_preferences_response_model'
        '400':
          description: 'Bad request — validation on the request body failed. `enabled` is

            optional on every preference, so the only messages actually emitted

            come from the `email` enum check on the three preferences that expose

            it (`inspections_awaiting_review`, `inspections_in_revision_review`,

            `inspections_completed`). Example:

            `"inspections_awaiting_review.email" must be one of [all, created_by_me]`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    example: '"inspections_awaiting_review.email" must be one of [all, created_by_me]'
        '401':
          description: 'Unauthorized — the token failed to decrypt or did not resolve to a

            well-formed email address. Example: `invalid notifications preferences id`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 401
                  error:
                    type: string
                    example: invalid notifications preferences id
  /v1/sales/rev-share-prospects:
    post:
      x-internal: true
      security: []
      summary: Create a rev-share prospect
      tags:
      - Account Settings
      description: 'Onboards a new revenue-share prospect: provisions a RentCheck user with a

        temporary password for the supplied email, attaches the requested Chargebee

        plan + addons to the user''s `prospect_data`, persists the self-reported

        portfolio size, and triggers the rev-share-prospect welcome email.


        Reachable without an authenticated session; the endpoint is invoked by the

        public RentCheck marketing flow.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/rev_share_prospect_create_request_model'
      responses:
        '200':
          description: Returns the prospect's RentCheck user profile after enrollment.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    type: object
                    description: The RentCheck user profile for the newly-created prospect, with the rev-share `prospect_data` block populated.
                    additionalProperties: true
        '400':
          description: "Bad request — request body validation failed, or the supplied\nChargebee plan / addons could not be resolved against the live\nChargebee catalog. Examples:\n  - `\"prospect_email\" is required`\n  - `\"prospect_email\" must be a valid email`\n  - `\"total_properties\" is required`\n  - `\"chargebee_plan_id\" is required`\n  - `\"chargebee_addon_ids\" is required`\n  - `Can't find selected plan`\n  - `Some of the addons couldn't be found, found these [...]`\n"
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    example: '"prospect_email" must be a valid email'
        '409':
          description: 'Conflict — a RentCheck user already exists for the supplied

            `prospect_email`. Example: `user already exists`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 409
                  error:
                    type: string
                    example: user already exists
components:
  schemas:
    notification_preference_no_email:
      type: object
      required:
      - enabled
      properties:
        enabled:
          type: boolean
          description: Whether notifications for this category are enabled at all.
    account_settings_delete_rooms_request_model:
      x-internal: true
      type: object
      required:
      - property_type
      - rooms
      description: Request body for deleting rooms.
      properties:
        property_type:
          type: string
          description: The property type designates which type of property the Unit is. `""` is allowed as a legacy value for units created before the enum was tightened.
          enum:
          - ''
          - Single-Family
          - Multi-Family
          - Apartment or Condo
          - Commercial
          example: Single-Family
        rooms:
          type: array
          items:
            type: object
          description: List of room entries to remove.
    basic_email_customization:
      x-internal: true
      type: object
      required:
      - id
      - email_type_id
      - email_title
      - email_explanatory_text
      - template
      description: Basic email customization.
      properties:
        id:
          type: string
        email_type_id:
          type: string
          enum:
          - inspection_invitation_new_to_rentcheck
          - inspection_invitation_existing_rentcheck_users
          - final_inspection_reminder_3_days_overdue
          - inspection_approval_confirmation
          - inspection_review_request
          description: Allowed email-customization types.
        email_title:
          type: string
        email_explanatory_text:
          type: string
        template:
          type: object
          required:
          - id
          - name
          - internal_label
          properties:
            id:
              type: string
            name:
              type: string
            internal_label:
              type: string
        updated_by:
          type: object
          properties:
            username:
              type: string
            email:
              type: string
            updated_date:
              type: string
              format: date-time
    signature_acknowledgements_update_request_model:
      x-internal: true
      type: object
      required:
      - signature_acknowledgements
      description: Use the literal id `default` to update the subscription-wide acknowledgement, or an inspection template id to scope the change.
      properties:
        signature_acknowledgements:
          type: array
          minItems: 1
          items:
            type: object
            required:
            - id
            - text
            properties:
              id:
                type: string
                description: Either the literal string 'default' or an inspection template id.
              text:
                type: string
    api_signature_acknowledgement:
      x-internal: true
      type: object
      required:
      - text
      - updated_by
      description: Signature acknowledgement.
      properties:
        text:
          type: string
        updated_by:
          type: object
          required:
          - id
          - username
          - email
          - updated_date
          properties:
            id:
              type: string
            username:
              type: string
            email:
              type: string
            updated_date:
              type: string
              format: date-time
    signature_acknowledgements_response_model:
      x-internal: true
      type: object
      required:
      - default
      description: Signature acknowledgements grouped by inspection template.
      properties:
        default:
          $ref: '#/components/schemas/api_signature_acknowledgement'
        global:
          $ref: '#/components/schemas/api_signature_acknowledgement'
        templates:
          type: array
          items:
            type: object
            required:
            - inspection_template
            properties:
              inspection_template:
                type: object
                required:
                - id
                - name
                - display_name
                - internal_label
                - description
                - is_deleted
                - is_rc_template
                - is_published
                - property_type
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  display_name:
                    type: string
                  internal

# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/rentcheck/refs/heads/main/openapi/rentcheck-account-settings-api-openapi.yml