RentCheck Subscriptions API
The Subscriptions API from RentCheck — 6 operation(s) for subscriptions.
The Subscriptions API from RentCheck — 6 operation(s) for subscriptions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/rentcheck-subscriptions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: RentCheck REST Subscriptions 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: Subscriptions
paths:
/v1/subscriptions/trial:
post:
x-internal: true
summary: Create a free trial subscription
tags:
- Subscriptions
description: 'Starts a free trial subscription for the caller. Reads the `x-app-id` header to determine which
Chargebee site / app the trial should be created in.'
parameters:
- in: header
name: x-app-id
required: true
schema:
type: string
description: 'App id identifying which Chargebee site the trial should be created in.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/subscription_create_trial_request_model'
responses:
'200':
description: Returns the newly-created trial subscription.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
$ref: '#/components/schemas/subscription_get_by_user_response_model'
'400':
description: 'Bad request — request body validation rejected the body. The
`x-app-id` header is also required, so a missing header surfaces
here rather than as a 401.
'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 400
error:
type: string
example: '"data.user_name" is required'
'401':
$ref: '#/components/responses/401'
'404':
description: 'Not Found — the authenticated token''s user id does not
resolve to a profile.
'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 404
error:
type: string
enum:
- user not found
example: user not found
operationId: postV1SubscriptionsTrial
x-operation-id-source: derived
/v1/subscriptions/me:
get:
x-internal: true
summary: Get subscription
tags:
- Subscriptions
description: 'Returns the subscription associated with the authenticated user. Used by the web and mobile apps
to render plan / billing information for the logged-in user.'
responses:
'200':
description: Returns the user's subscription.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
$ref: '#/components/schemas/subscription_get_by_user_response_model'
'401':
$ref: '#/components/responses/401'
'404':
description: 'Not Found — the authenticated user has no subscription record.
No `user not found` 404 is raised on this path (a
missing profile flows through as an empty subscription lookup).
'
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
operationId: getV1SubscriptionsMe
x-operation-id-source: derived
/v1/subscriptions/invoices/{invoiceId}/get-download-url:
get:
x-internal: true
summary: Get a download URL for an invoice
tags:
- Subscriptions
description: 'Returns a short-lived URL that can be used to download the PDF for the supplied Chargebee invoice.
The invoice must belong to the caller''s subscription.'
parameters:
- name: invoiceId
in: path
description: Chargebee invoice id.
required: true
schema:
type: string
responses:
'200':
description: Returns the download URL for the invoice PDF.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
type: string
description: Pre-signed download URL for the invoice PDF.
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found — `subscription not found` or `invoice 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
- invoice not found
example: invoice not found
operationId: getV1SubscriptionsInvoicesByInvoiceIdGetDownloadUrl
x-operation-id-source: derived
/v1/subscriptions/invoices:
get:
x-internal: true
summary: Get invoices for the caller's subscription
tags:
- Subscriptions
description: 'Lists Chargebee invoices associated with the caller''s subscription. Returns the curated subset of
Chargebee invoice fields surfaced by the web app; refer to Chargebee''s API docs for the full set.'
responses:
'200':
description: Returns the list of invoices for the caller's subscription.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
type: array
items:
$ref: '#/components/schemas/subscription_invoice_response_model'
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
operationId: getV1SubscriptionsInvoices
x-operation-id-source: derived
/v1/subscriptions/me/requests:
post:
x-internal: true
summary: Request a new plan / trial for the caller's subscription
tags:
- Subscriptions
description: 'Submits an internal request for sales / support to switch the caller''s subscription to the
supplied Chargebee plan. Optional `note` is forwarded to the team that fulfills the request.'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/subscription_create_request_request_model'
responses:
'200':
description: The request has been submitted.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
type: 'null'
description: 'Always `null` — the response returns no data on success.
'
'400':
description: Bad request — request body 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.plan_id" is required'
'401':
description: "Unauthorized — a standard auth-token failure, or the caller's\nsubscription state disallows the request (`unauthorized` message) when:\n- the caller already has permission to edit the plan directly, or\n- the caller requested the plan they are already on and the\n subscription is active or in trial.\n"
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
- unauthorized
example: unauthorized
'404':
description: "Not Found — one of the resources needed to fulfil the request could\nnot be located:\n- `subscription not found` — the caller has no subscription attached.\n- `plan not found` — the supplied `plan_id` does not resolve in Chargebee.\n- `permission group not found` — no permission group on the subscription\n grants `allow_billing_plan_editing`, so there is no billing admin to notify.\n- `admin users not found` — the billing admin permission group exists\n but has no members.\n"
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 404
error:
type: string
enum:
- subscription not found
- plan not found
- permission group not found
- admin users not found
example: subscription not found
operationId: postV1SubscriptionsMeRequests
x-operation-id-source: derived
/v1/subscriptions:
put:
x-internal: true
summary: Update the caller's subscription
tags:
- Subscriptions
description: 'Updates the Chargebee plan and/or addons on the caller''s subscription. Supply only the keys you
want to change; both `plan` and `addons` are optional. Returns the updated subscription.'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/subscription_update_request_model'
responses:
'200':
description: Returns the updated subscription.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: HTTP status code
example: 200
data:
$ref: '#/components/schemas/subscription_get_by_user_response_model'
'400':
description: Bad request — Chargebee rejected the update (invalid plan id, addon id, etc.).
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` 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
operationId: putV1Subscriptions
x-operation-id-source: derived
components:
schemas:
subscription_get_by_user_response_model:
type: object
required:
- id
- status
- created_at
- teams
- plan
- addons
- rentcheck_contact
- coupons
properties:
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
status:
type: string
description: Current status of subscription
enum:
- active
- future
- in_trial
- non_renewing
- paused
- cancelled
created_at:
type: string
description: Entity creation date, in ISO format
example: 2022-12-02 14:15:37.925000
cancelled_at:
type: string
description: Subscription cancellation date, in ISO format
example: 2022-12-02 14:15:37.925000
next_billing_at:
type: string
description: Next billing date for the subscription, in ISO format.
example: 2022-12-02 14:15:37.925000
teams:
type: array
items:
type: object
required:
- id
- name
- internal_label
properties:
id:
type: string
description: Entity ID
example: 00BRcZPSakXz6w7RYoE
name:
type: string
description: The name field is the Team name that is displayed on recipient facing reports and communication.
example: The best company
internal_label:
type: string
description: The internal label is a convenience label to help differentiate similar teams a user may belong to. It's displayed to you and your team members.
example: The best company label
logo:
type: string
description: The location of a hosted image file that is used to co-brand RentCheck reports and email communication.
plan:
type: object
required:
- sub_id
- plan_id
- plan_name
- customer_id
- billing_email
- plan_unit_price
- plan_amount
- plan_qty
- pricing_model
- active_units
properties:
sub_id:
type: string
plan_id:
type: string
plan_name:
type: string
invoice_name:
type: string
description: Optional label used on invoices for this plan.
customer_id:
type: string
billing_email:
type: string
plan_unit_price:
type: number
plan_amount:
type: number
plan_qty:
type: number
pricing_model:
type: string
enum:
- flat_fee
- per_unit
- tiered
- volume
- stairstep
active_units:
type: number
description: Number of billable units currently active on this plan.
addons:
type: array
items:
type: object
required:
- id
- name
- amount
- quantity
- unit_price
- pricing_model
properties:
id:
type: string
name:
type: string
amount:
type: number
quantity:
type: number
unit_price:
type: number
pricing_model:
type: string
enum:
- flat_fee
- per_unit
- tiered
- volume
- stairstep
payment_method:
type: object
description: Optional payment method associated with the subscription. The full Chargebee payload (id, updated_at, type, reference_id, status, plus optional `card` / `bank_account` blocks) is passed through as-is.
additionalProperties: true
plan_trial:
type: object
description: Details of the most recent plan trial, when the subscription has an active or completed plan-trial.
required:
- plan_id
- duration_in_days
properties:
plan_id:
type: string
duration_in_days:
type: number
start:
type: string
description: Trial start date, in ISO format.
example: 2022-12-02 14:15:37.925000
end:
type: string
description: Trial end date, in ISO format.
example: 2022-12-02 14:15:37.925000
plan_free_trials:
type: array
description: List of plan free trials the caller has already participated in — used server-side to avoid re-offering the same trial. An omitted value is normalised to `[]`, so the field is always present on the wire.
items:
type: object
required:
- id
properties:
id:
type: string
addon_free_trials:
type: array
items:
type: object
required:
- status
- trial_start
- trial_end
- paid_addon_id
properties:
status:
type: string
enum:
- active
- expired
trial_start:
type: string
trial_end:
type: string
paid_addon_id:
type: string
rentcheck_contact:
type: object
required:
- id
- name
- email
- company
- company_id
properties:
id:
type: string
name:
type: string
email:
type: string
company:
type: string
company_id:
type: string
coupons:
type: array
items:
type: object
required:
- id
- name
- discount_type
properties:
id:
type: string
name:
type: string
discount_type:
type: string
enum:
- fixed_amount
- percentage
discount_amount:
type: number
discount_percentage:
type: number
subscription_invoice_response_model:
x-internal: true
type: object
required:
- id
- date
- status
- amount_due
description: Subset of the Chargebee invoice payload surfaced to clients.
properties:
id:
type: string
description: Chargebee invoice id.
date:
type: integer
description: Unix-second timestamp the invoice was issued.
status:
type: string
enum:
- paid
- posted
- payment_due
- not_paid
- voided
- pending
amount_due:
type: integer
description: Amount due on the invoice (in the smallest currency unit).
subscription_update_request_model:
x-internal: true
type: object
description: At least one of `plan` or `addons` should be supplied.
properties:
plan:
type: object
required:
- id
properties:
id:
type: string
description: Chargebee plan id to switch to.
addons:
type: array
items:
type: object
required:
- id
properties:
id:
type: string
description: Chargebee addon id.
subscription_create_request_request_model:
x-internal: true
type: object
required:
- plan_id
description: Used to request a trial extension or plan change.
properties:
plan_id:
type: string
description: Chargebee plan id the user is requesting.
note:
type: string
subscription_create_trial_request_model:
x-internal: true
type: object
required:
- user_name
- company
- portfolio_size
description: Request body for creating a subscription trial.
properties:
user_name:
type: string
company:
type: string
portfolio_size:
type: integer
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