RentCheck Integrations API

The Integrations API from RentCheck — 1 operation(s) for integrations.

OpenAPI Specification

rentcheck-integrations-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: RentCheck REST Account Settings Integrations 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: Integrations
paths:
  /v1/integrations/rentcheck:
    post:
      x-internal: true
      summary: Rotate RentCheck-API integration credentials
      tags:
      - Integrations
      description: 'Creates a fresh `app_id` / `app_secret` pair for the caller''s active

        RentCheck subscription and provisions the matching AWS API Gateway API

        key + usage-plan entry so the credentials can immediately sign public API

        requests. Any existing integration record for the subscription is removed

        first, so calling this endpoint effectively rotates the credentials.


        If the AWS API-key provisioning step fails after the record is created,

        the just-created integration record is removed and the failure surfaces

        as a 500 `Error creating AWS API key`.

        '
      responses:
        '200':
          description: Newly-created RentCheck-API integration credentials.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_integration_rentcheck'
        '400':
          description: 'Bad Request — the caller''s active subscription is missing the

            `rentcheck_contact.company` field, which is required before the

            AWS API key can be labelled.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    enum:
                    - subscription.rentcheck_contact.company is missing
                    example: subscription.rentcheck_contact.company is missing
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: 'Not Found — the caller has no active subscription.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    enum:
                    - subscription not found
                    example: subscription not found
        '500':
          description: 'Internal Server Error — the AWS API-key / usage-plan provisioning

            call failed. The just-created integration record is removed and the

            failure surfaces as `Error creating AWS API key`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 500
                  error:
                    type: string
                    example: Error creating AWS API key
    get:
      x-internal: true
      summary: Get RentCheck-API integration credentials
      tags:
      - Integrations
      description: 'Returns the `x-app-id` / `x-app-secret` pair for the caller''s active

        RentCheck subscription. Used by the `Account → Integrations → RentCheck

        API` panel to display the credentials integrators need to sign public API

        requests.

        '
      responses:
        '200':
          description: RentCheck-API integration for the caller's active subscription.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_integration_rentcheck'
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: 'Not Found — either the caller has no active subscription, or the

            subscription has no RentCheck-API integration record yet.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    enum:
                    - subscription not found
                    - integration not found
                    example: integration not found
components:
  schemas:
    api_integration_rentcheck:
      x-internal: true
      type: object
      description: RentCheck-API integration credentials — the `app_id`/`app_secret` pair used to sign requests against the public API for a given subscription.
      required:
      - id
      - app_id
      - app_secret
      - subscription_id
      properties:
        id:
          type: string
          description: Document id for the integration record.
        app_id:
          type: string
          description: Public API application id — sent as the `x-app-id` header.
        app_secret:
          type: string
          description: Public API application secret — sent as the `x-app-secret` header.
        subscription_id:
          type: string
          description: RentCheck subscription id the integration is scoped to.
  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