RentCheck Permission Groups API

The Permission Groups API from RentCheck — 2 operation(s) for permission groups.

Operations 5

POST /v1/permission-groups Create permission group #
DELETE /v1/permission-groups Delete permission groups #
GET /v1/permission-groups Get all permission groups #
GET /v1/permission-groups/{id} Get permission group by ID #
PUT /v1/permission-groups/{id} Update permission group #

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-permission-groups-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-permission-groups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: RentCheck REST Permission Groups 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: Permission Groups
paths:
  /v1/permission-groups:
    post:
      summary: Create permission group
      tags:
      - Permission Groups
      description: This resource allows you to create a Permission Group in RentCheck.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/permission_group_create_request_model'
      responses:
        '201':
          description: Returns the created permission group
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 201
                  data:
                    $ref: '#/components/schemas/api_permission_group'
        '400':
          description: Bad request — request body validation failed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    enum:
                    - '"data.name" is required'
                    - '"data.inspection_template_ids" is required'
                    - '"data.allow_billing_plan_editing" is required'
                    - '"data.user_ids" is required'
                    example: '"data.name" is required'
        '401':
          description: 'Unauthorized — either a standard auth-token failure, or the caller''s

            role does not allow creating permission groups. When the role is

            insufficient, the request surfaces as 401 with the error string below.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 401
                  error:
                    type: string
                    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
                    - User does not have permissions to create permission group
                    example: User does not have permissions to create permission group
        '404':
          description: 'Not Found — `subscription not found` (caller has no active

            subscription), `inspection template not found (<id>)`, or

            `user not found (<id>)` when one of the supplied `user_ids` /

            `inspection_template_ids` does not resolve.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    enum:
                    - subscription not found
                    - inspection template not found (<id>)
                    - user not found (<id>)
                    example: subscription not found
        '409':
          description: 'Conflict — a permission group with the requested `name` already exists

            on the caller''s subscription (names are unique per subscription).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 409
                  error:
                    type: string
                    example: A permission group with this name already exists on the subscription
      operationId: postV1PermissionGroups
      x-operation-id-source: derived
    delete:
      summary: Delete permission groups
      tags:
      - Permission Groups
      description: 'Bulk-delete permission groups belonging to the caller''s subscription. Group ids are passed in the

        request body (not the URL); at least one permission group must remain on the subscription after

        the operation, so attempting to delete every remaining group is rejected with a 403.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/permission_group_delete_request_model'
      responses:
        '204':
          description: Successful deletion of permission groups.
        '400':
          description: 'Bad request — validation rejected the body. `data.ids` must be a

            non-empty string array, so both a missing field and an empty array

            surface here.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    enum:
                    - '"data.ids" is required'
                    - '"data.ids" must contain at least 1 items'
                    example: '"data.ids" is required'
        '401':
          description: 'Unauthorized — either a standard auth-token failure, or the caller''s

            role does not allow deleting permission groups.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 401
                  error:
                    type: string
                    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
                    - User does not have permissions to delete permission group
                    example: User does not have permissions to delete permission group
        '403':
          description: Forbidden — the delete would leave the subscription with no remaining permission groups.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 403
                  error:
                    type: string
                    enum:
                    - At least one permission group must remain on the subscription
                    example: At least one permission group must remain on the subscription
        '404':
          description: 'Not Found — `subscription not found`, or `permission group not found (<id>)`.

            The permission-group message includes the offending id in parentheses,

            i.e. `<name> not found (<id>)`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: permission group not found (abc123)
      operationId: deleteV1PermissionGroups
      x-operation-id-source: derived
    get:
      summary: Get all permission groups
      tags:
      - Permission Groups
      description: This resource fetches all Permission Groups associated with the user's subscription.
      parameters:
      - in: query
        name: filters[search]
        description: Search by permission group name or id.
        schema:
          type: string
      - in: query
        name: filters[user_id]
        description: Restrict results to permission groups that include the given user id.
        schema:
          type: string
      - in: query
        name: options[pagination][page_size]
        description: How many items to be returned for each page.
        schema:
          type: integer
          default: 20
      - in: query
        name: options[pagination][page_number]
        description: Page number (zero-indexed).
        schema:
          type: integer
          default: 0
      - in: query
        name: options[sort][sort_type]
        description: Sort list in ascending or descending order.
        schema:
          type: string
          default: ASC
          enum:
          - ASC
          - DESC
      - in: query
        name: options[sort][sort_by]
        description: Sort list by a specific property.
        schema:
          type: string
          default: name
          enum:
          - name
          - user_count
      responses:
        '200':
          description: Returns all permission groups
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/permission_group_get_all_response_model'
                  count:
                    type: integer
                    description: Amount of elements in `data` on the current page.
                  total_results:
                    type: integer
                    description: Total amount of permission groups matching the filter criteria (irrespective of paging).
        '401':
          $ref: '#/components/responses/401'
      operationId: getV1PermissionGroups
      x-operation-id-source: derived
  /v1/permission-groups/{id}:
    get:
      summary: Get permission group by ID
      tags:
      - Permission Groups
      description: This resource allows you to get a Permission Group in RentCheck.
      parameters:
      - name: id
        in: path
        description: Permission group ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the requested permission group
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_permission_group'
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found — `subscription not found` (when the caller has no subscription) or `permission group 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
                    - permission group not found
                    example: permission group not found
      operationId: getV1PermissionGroupsById
      x-operation-id-source: derived
    put:
      summary: Update permission group
      tags:
      - Permission Groups
      description: This resource allows you to update a Permission Group in RentCheck.
      parameters:
      - name: id
        in: path
        description: Permission group ID
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/permission_group_update_request_model'
      responses:
        '200':
          description: Returns the updated permission group
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 200
                  data:
                    $ref: '#/components/schemas/api_permission_group'
        '400':
          description: Bad request — validation rejected the request body.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 400
                  error:
                    type: string
                    enum:
                    - '"data.name" is required'
                    - '"data.inspection_template_ids" is required'
                    - '"data.user_ids" is required'
                    example: '"data.name" is required'
        '401':
          description: 'Unauthorized — either a standard auth-token failure, or the caller''s

            role does not allow updating permission groups. When the role is

            insufficient, the request surfaces as 401 with the error string below.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 401
                  error:
                    type: string
                    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
                    - User does not have permissions to update permission group
                    example: User does not have permissions to update permission group
        '404':
          description: 'Not Found — `subscription not found`, `permission group not found`,

            `user not found (<id>)`, or `inspection template not found (<id>)`.

            The `user` and `inspection template` messages include the offending

            id in parentheses, i.e. `<name> not found (<id>)`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: HTTP status code
                    example: 404
                  error:
                    type: string
                    example: user not found (abc123)
        '409':
          description: 'Conflict — a different permission group already owns the requested

            `name` on the caller''s subscription (names are unique per

            subscription). Renaming to the 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 permission group with this name already exists on the subscription
      operationId: putV1PermissionGroupsById
      x-operation-id-source: derived
components:
  schemas:
    permission_group_create_request_model:
      type: object
      required:
      - name
      - inspection_template_ids
      - user_ids
      - allow_billing_plan_editing
      properties:
        name:
          type: string
          description: Name for the permission group, must be unique in the subscription context
        allow_billing_plan_editing:
          type: boolean
          description: Enable or disable billing plan editing for users on this permission group
        allow_automation_editing:
          type: boolean
          description: Enable or disable automation editing for users on this permission group
        allow_notifications_preferences_editing:
          type: boolean
          description: Enable or disable notification preferences editing for users on this permission group
        allow_inspection_messaging_editing:
          type: boolean
          description: Enable or disable inspection messaging editing for users on this permission group
        allow_ai_manual_scan:
          type: boolean
          description: Enable or disable manual AI damage scans for users on this permission group
        inspection_template_ids:
          type: array
          items:
            type: string
          description: IDs of the inspection templates to be associated with the new permission group
        user_ids:
          type: array
          items:
            type: string
          description: IDs of the users to be associated with the new permission group
    permission_group_update_request_model:
      type: object
      required:
      - name
      - inspection_template_ids
      - user_ids
      - allow_billing_plan_editing
      properties:
        name:
          type: string
          description: Name for the permission group, must be unique in the subscription context
        inspection_template_ids:
          type: array
          items:
            type: string
          description: IDs of the inspection templates to be associated with the permission group
        user_ids:
          type: array
          items:
            type: string
          description: IDs of the users to be associated with the permission group
        allow_billing_plan_editing:
          type: boolean
          description: Enable or disable billing plan editing for users on this permission group
        allow_automation_editing:
          type: boolean
          description: Enable or disable automation editing for users on this permission group
        allow_notifications_preferences_editing:
          type: boolean
          description: Enable or disable notification preferences editing for users on this permission group
        allow_inspection_messaging_editing:
          type: boolean
          description: Enable or disable inspection messaging editing for users on this permission group
        allow_ai_manual_scan:
          type: boolean
          description: Enable or disable manual AI damage scans for users on this permission group
    permission_group_get_all_response_model:
      type: object
      properties:
        id:
          type: string
          description: Entity ID
          example: 00BRcZPSakXz6w7RYoE
        name:
          type: string
          description: Name of the permission group
        user_count:
          type: number
          description: Total amount of users on the permission group
        allow_billing_plan_editing:
          type: boolean
          description: Whether users on this permission group can edit billing plans.
        allow_automation_editing:
          type: boolean
          description: Whether users on this permission group can edit automations.
        allow_notifications_preferences_editing:
          type: boolean
          description: Whether users on this permission group can edit notification preferences.
        allow_inspection_messaging_editing:
          type: boolean
          description: Whether users on this permission group can edit inspection messaging.
        allow_ai_manual_scan:
          type: boolean
          description: Whether users on this permission group can run manual AI damage scans.
    permission_group_delete_request_model:
      type: object
      required:
      - ids
      properties:
        ids:
          type: array
          minItems: 1
          items:
            type: string
          description: IDs of the permission groups to be deleted. Must contain at least one id.
    api_permission_group:
      type: object
      required:
      - id
      - name
      - subscription_id
      - inspection_templates
      - users
      - allow_billing_plan_editing
      - allow_automation_editing
      - allow_notifications_preferences_editing
      - allow_inspection_messaging_editing
      - allow_ai_manual_scan
      properties:
        id:
          type: string
          description: Entity ID
          example: 00BRcZPSakXz6w7RYoE
        name:
          type: string
          description: Name for the permission group, must be unique in the subscription context
        subscription_id:
          type: string
          description: Id for the subscription the permission group belongs to
        allow_billing_plan_editing:
          type: boolean
          description: Enable or disable billing plan editing for users on this permission group
        allow_automation_editing:
          type: boolean
          description: Enable or disable automation editing for users on this permission group
        allow_notifications_preferences_editing:
          type: boolean
          description: Enable or disable notification preferences editing for users on this permission group
        allow_inspection_messaging_editing:
          type: boolean
          description: Enable or disable inspection messaging editing for users on this permission group
        allow_ai_manual_scan:
          type: boolean
          description: Enable or disable manual AI damage scans for users on this permission group
        inspection_templates:
          type: array
          description: Which inspection templates users that belong to this permission group have access to
          items:
            type: object
            required:
            - id
            - name
            - internal_label
            - property_type
            - display_name
            properties:
              id:
                type: string
                description: Inspection template identifier
              name:
                type: string
                description: Inspection template name.
              internal_label:
                type: string
                description: Inspection template internal label.
              property_type:
                type: string
                description: Inspection template property type.
              display_name:
                type: string
                description: Resolved display name for the inspection template, used by clients to render the template title (mirrors `name` for legacy templates).
        users:
          description: Which users belong to this permission group
          type: array
          items:
            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.
              user_type:
                type: string
                enum:
                - Renter
                - Property Manager
                - Landlord
                example: Property Manager
  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