{"openapi":"3.0.3","info":{"title":"Rentsi REST API","version":"1.0.0","description":"Read and write your company's Rentsi data. Create keys in Rentsi → Settings → Developers. Each key works only for the company that created it. Rate limits: 120 requests a minute and 3000 an hour per key. Every call is written to the company's activity log. Sensitive data (SSNs, dates of birth, ID numbers, bank, routing, MICR and card numbers) is never returned."},"servers":[{"url":"https://rentbook-pm.sites.tab.bot"}],"components":{"securitySchemes":{"bearerKey":{"type":"http","scheme":"bearer","bearerFormat":"rbk_…","description":"Authorization: Bearer rbk_…  Scopes are set per area (read or read-write) when the key is created."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"Propertie":{"type":"object","description":"Buildings and other properties.","properties":{"id":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"},"type":{"type":"string"},"notes":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"}}},"PropertieInput":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"},"type":{"type":"string"},"notes":{"type":"string"}}},"Unit":{"type":"object","description":"Rentable units inside a property.","properties":{"id":{"type":"string"},"propertyId":{"type":"string"},"name":{"type":"string"},"beds":{"type":"number"},"baths":{"type":"number"},"sqft":{"type":"number"},"marketRent":{"type":"number"},"notes":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"}}},"UnitInput":{"type":"object","additionalProperties":false,"properties":{"propertyId":{"type":"string"},"name":{"type":"string"},"beds":{"type":"number"},"baths":{"type":"number"},"sqft":{"type":"number"},"marketRent":{"type":"number"},"notes":{"type":"string"}}},"Tenant":{"type":"object","description":"Tenants (contact details only: no SSN, date of birth or ID numbers).","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"notes":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"leaseIds":{"type":"array","items":{"type":"string"}}}},"TenantInput":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"notes":{"type":"string"}}},"Lease":{"type":"object","description":"Leases linking tenants to a unit. `balance` = charges minus payments.","properties":{"id":{"type":"string"},"unitId":{"type":"string"},"tenantIds":{"type":"array","items":{"type":"string"}},"start":{"type":"string","format":"date"},"end":{"type":"string","format":"date"},"rent":{"type":"number"},"deposit":{"type":"number"},"status":{"type":"string"},"mtm":{"type":"boolean"},"moveIn":{"type":"string","format":"date"},"moveOut":{"type":"string","format":"date"},"updatedAt":{"type":"string","format":"date-time"},"balance":{"type":"number"}}},"LeaseInput":{"type":"object","additionalProperties":false,"properties":{"unitId":{"type":"string"},"tenantIds":{"type":"array","items":{"type":"string"}},"start":{"type":"string","format":"date"},"end":{"type":"string","format":"date"},"rent":{"type":"number"},"deposit":{"type":"number"},"status":{"type":"string"},"mtm":{"type":"boolean"},"moveIn":{"type":"string","format":"date"},"moveOut":{"type":"string","format":"date"}}},"Charge":{"type":"object","description":"Charges posted to a lease (rent, late fees, utilities…). Create only.","properties":{"id":{"type":"string"},"leaseId":{"type":"string"},"date":{"type":"string","format":"date"},"type":{"type":"string"},"amount":{"type":"number"},"memo":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"}}},"ChargeInput":{"type":"object","additionalProperties":false,"properties":{"leaseId":{"type":"string"},"date":{"type":"string","format":"date"},"type":{"type":"string"},"amount":{"type":"number"},"memo":{"type":"string"}}},"Payment":{"type":"object","description":"Payments received on a lease. Create only. New payments land as undeposited funds for the office to deposit.","properties":{"id":{"type":"string"},"leaseId":{"type":"string"},"date":{"type":"string","format":"date"},"amount":{"type":"number"},"method":{"type":"string"},"ref":{"type":"string"},"memo":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"}}},"PaymentInput":{"type":"object","additionalProperties":false,"properties":{"leaseId":{"type":"string"},"date":{"type":"string","format":"date"},"amount":{"type":"number"},"method":{"type":"string"},"ref":{"type":"string"},"memo":{"type":"string"}}},"Workorder":{"type":"object","description":"Maintenance work orders.","properties":{"id":{"type":"string"},"number":{"type":"integer"},"propertyId":{"type":"string"},"unitId":{"type":"string"},"tenantId":{"type":"string"},"issue":{"type":"string"},"category":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"emergency":{"type":"boolean"},"created":{"type":"string","format":"date"},"scheduled":{"type":"string"},"dueDate":{"type":"string","format":"date"},"completed":{"type":"string","format":"date"},"vendorId":{"type":"string"},"notes":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"}}},"WorkorderInput":{"type":"object","additionalProperties":false,"properties":{"propertyId":{"type":"string"},"unitId":{"type":"string"},"tenantId":{"type":"string"},"issue":{"type":"string"},"category":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"emergency":{"type":"boolean"},"scheduled":{"type":"string"},"dueDate":{"type":"string","format":"date"},"vendorId":{"type":"string"},"notes":{"type":"string"}}},"Vendor":{"type":"object","description":"Vendors and contractors (no tax IDs, bank or insurance policy numbers).","properties":{"id":{"type":"string"},"name":{"type":"string"},"trade":{"type":"string"},"contact":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"string"},"notes":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"}}},"VendorInput":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"trade":{"type":"string"},"contact":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"string"},"notes":{"type":"string"}}},"WebhookEvent":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenant.created","payment.received","workorder.created","workorder.updated","lease.created","ping"]},"created":{"type":"string","format":"date-time"},"company":{"type":"string"},"data":{"type":"object","properties":{"object":{"type":"object"},"changes":{"type":"array","items":{"type":"string"}}}}}}}},"security":[{"bearerKey":[]}],"paths":{"/api/v1/properties":{"get":{"tags":["properties"],"summary":"List properties","description":"Buildings and other properties.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"cursor","in":"query","description":"The id after which to continue (use `next`).","schema":{"type":"string"}},{"name":"offset","in":"query","schema":{"type":"integer"}},{"name":"property","in":"query","description":"Only records in this property.","schema":{"type":"string"}},{"name":"updated_since","in":"query","description":"ISO date-time; records changed since.","schema":{"type":"string","format":"date-time"}}],"security":[{"bearerKey":["properties:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Propertie"}},"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"has_more":{"type":"boolean"},"next":{"type":"string","nullable":true}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"429":{"description":"Rate limited"}}},"post":{"tags":["properties"],"summary":"Create a propertie","security":[{"bearerKey":["properties:write"]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Optional. Repeating a POST with the same key returns the first result instead of creating a duplicate.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertieInput"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Propertie"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/properties/{id}":{"get":{"tags":["properties"],"summary":"Get one propertie","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["properties:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Propertie"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}}},"patch":{"tags":["properties"],"summary":"Change a propertie","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["properties:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertieInput"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Propertie"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/units":{"get":{"tags":["units"],"summary":"List units","description":"Rentable units inside a property.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"cursor","in":"query","description":"The id after which to continue (use `next`).","schema":{"type":"string"}},{"name":"offset","in":"query","schema":{"type":"integer"}},{"name":"property","in":"query","description":"Only records in this property.","schema":{"type":"string"}},{"name":"updated_since","in":"query","description":"ISO date-time; records changed since.","schema":{"type":"string","format":"date-time"}}],"security":[{"bearerKey":["units:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Unit"}},"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"has_more":{"type":"boolean"},"next":{"type":"string","nullable":true}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"429":{"description":"Rate limited"}}},"post":{"tags":["units"],"summary":"Create a unit","security":[{"bearerKey":["units:write"]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Optional. Repeating a POST with the same key returns the first result instead of creating a duplicate.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnitInput"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Unit"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/units/{id}":{"get":{"tags":["units"],"summary":"Get one unit","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["units:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Unit"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}}},"patch":{"tags":["units"],"summary":"Change a unit","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["units:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnitInput"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Unit"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/tenants":{"get":{"tags":["tenants"],"summary":"List tenants","description":"Tenants (contact details only: no SSN, date of birth or ID numbers).","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"cursor","in":"query","description":"The id after which to continue (use `next`).","schema":{"type":"string"}},{"name":"offset","in":"query","schema":{"type":"integer"}},{"name":"property","in":"query","description":"Only records in this property.","schema":{"type":"string"}},{"name":"updated_since","in":"query","description":"ISO date-time; records changed since.","schema":{"type":"string","format":"date-time"}}],"security":[{"bearerKey":["tenants:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Tenant"}},"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"has_more":{"type":"boolean"},"next":{"type":"string","nullable":true}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"429":{"description":"Rate limited"}}},"post":{"tags":["tenants"],"summary":"Create a tenant","security":[{"bearerKey":["tenants:write"]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Optional. Repeating a POST with the same key returns the first result instead of creating a duplicate.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantInput"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Tenant"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/tenants/{id}":{"get":{"tags":["tenants"],"summary":"Get one tenant","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["tenants:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Tenant"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}}},"patch":{"tags":["tenants"],"summary":"Change a tenant","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["tenants:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantInput"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Tenant"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/leases":{"get":{"tags":["leases"],"summary":"List leases","description":"Leases linking tenants to a unit. `balance` = charges minus payments.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"cursor","in":"query","description":"The id after which to continue (use `next`).","schema":{"type":"string"}},{"name":"offset","in":"query","schema":{"type":"integer"}},{"name":"property","in":"query","description":"Only records in this property.","schema":{"type":"string"}},{"name":"updated_since","in":"query","description":"ISO date-time; records changed since.","schema":{"type":"string","format":"date-time"}},{"name":"since","in":"query","description":"Records dated on or after (YYYY-MM-DD).","schema":{"type":"string","format":"date"}},{"name":"status","in":"query","schema":{"type":"string"}}],"security":[{"bearerKey":["leases:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Lease"}},"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"has_more":{"type":"boolean"},"next":{"type":"string","nullable":true}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"429":{"description":"Rate limited"}}},"post":{"tags":["leases"],"summary":"Create a lease","security":[{"bearerKey":["leases:write"]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Optional. Repeating a POST with the same key returns the first result instead of creating a duplicate.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaseInput"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Lease"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/leases/{id}":{"get":{"tags":["leases"],"summary":"Get one lease","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["leases:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Lease"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}}},"patch":{"tags":["leases"],"summary":"Change a lease","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["leases:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaseInput"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Lease"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/charges":{"get":{"tags":["charges"],"summary":"List charges","description":"Charges posted to a lease (rent, late fees, utilities…). Create only.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"cursor","in":"query","description":"The id after which to continue (use `next`).","schema":{"type":"string"}},{"name":"offset","in":"query","schema":{"type":"integer"}},{"name":"property","in":"query","description":"Only records in this property.","schema":{"type":"string"}},{"name":"updated_since","in":"query","description":"ISO date-time; records changed since.","schema":{"type":"string","format":"date-time"}},{"name":"since","in":"query","description":"Records dated on or after (YYYY-MM-DD).","schema":{"type":"string","format":"date"}},{"name":"lease","in":"query","schema":{"type":"string"}}],"security":[{"bearerKey":["payments:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Charge"}},"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"has_more":{"type":"boolean"},"next":{"type":"string","nullable":true}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"429":{"description":"Rate limited"}}},"post":{"tags":["charges"],"summary":"Create a charge","security":[{"bearerKey":["payments:write"]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Optional. Repeating a POST with the same key returns the first result instead of creating a duplicate.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChargeInput"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Charge"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/charges/{id}":{"get":{"tags":["charges"],"summary":"Get one charge","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["payments:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Charge"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}}}},"/api/v1/payments":{"get":{"tags":["payments"],"summary":"List payments","description":"Payments received on a lease. Create only. New payments land as undeposited funds for the office to deposit.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"cursor","in":"query","description":"The id after which to continue (use `next`).","schema":{"type":"string"}},{"name":"offset","in":"query","schema":{"type":"integer"}},{"name":"property","in":"query","description":"Only records in this property.","schema":{"type":"string"}},{"name":"updated_since","in":"query","description":"ISO date-time; records changed since.","schema":{"type":"string","format":"date-time"}},{"name":"since","in":"query","description":"Records dated on or after (YYYY-MM-DD).","schema":{"type":"string","format":"date"}},{"name":"lease","in":"query","schema":{"type":"string"}}],"security":[{"bearerKey":["payments:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Payment"}},"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"has_more":{"type":"boolean"},"next":{"type":"string","nullable":true}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"429":{"description":"Rate limited"}}},"post":{"tags":["payments"],"summary":"Create a payment","security":[{"bearerKey":["payments:write"]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Optional. Repeating a POST with the same key returns the first result instead of creating a duplicate.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInput"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Payment"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/payments/{id}":{"get":{"tags":["payments"],"summary":"Get one payment","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["payments:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Payment"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}}}},"/api/v1/workorders":{"get":{"tags":["workorders"],"summary":"List workorders","description":"Maintenance work orders.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"cursor","in":"query","description":"The id after which to continue (use `next`).","schema":{"type":"string"}},{"name":"offset","in":"query","schema":{"type":"integer"}},{"name":"property","in":"query","description":"Only records in this property.","schema":{"type":"string"}},{"name":"updated_since","in":"query","description":"ISO date-time; records changed since.","schema":{"type":"string","format":"date-time"}},{"name":"since","in":"query","description":"Records dated on or after (YYYY-MM-DD).","schema":{"type":"string","format":"date"}},{"name":"status","in":"query","schema":{"type":"string"}}],"security":[{"bearerKey":["workorders:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Workorder"}},"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"has_more":{"type":"boolean"},"next":{"type":"string","nullable":true}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"429":{"description":"Rate limited"}}},"post":{"tags":["workorders"],"summary":"Create a workorder","security":[{"bearerKey":["workorders:write"]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Optional. Repeating a POST with the same key returns the first result instead of creating a duplicate.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkorderInput"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Workorder"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/workorders/{id}":{"get":{"tags":["workorders"],"summary":"Get one workorder","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["workorders:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Workorder"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}}},"patch":{"tags":["workorders"],"summary":"Change a workorder","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["workorders:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkorderInput"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Workorder"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/vendors":{"get":{"tags":["vendors"],"summary":"List vendors","description":"Vendors and contractors (no tax IDs, bank or insurance policy numbers).","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"cursor","in":"query","description":"The id after which to continue (use `next`).","schema":{"type":"string"}},{"name":"offset","in":"query","schema":{"type":"integer"}},{"name":"property","in":"query","description":"Only records in this property.","schema":{"type":"string"}},{"name":"updated_since","in":"query","description":"ISO date-time; records changed since.","schema":{"type":"string","format":"date-time"}}],"security":[{"bearerKey":["vendors:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Vendor"}},"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"has_more":{"type":"boolean"},"next":{"type":"string","nullable":true}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"429":{"description":"Rate limited"}}},"post":{"tags":["vendors"],"summary":"Create a vendor","security":[{"bearerKey":["vendors:write"]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Optional. Repeating a POST with the same key returns the first result instead of creating a duplicate.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorInput"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Vendor"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}},"/api/v1/vendors/{id}":{"get":{"tags":["vendors"],"summary":"Get one vendor","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["vendors:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Vendor"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}}},"patch":{"tags":["vendors"],"summary":"Change a vendor","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"bearerKey":["vendors:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorInput"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Vendor"}}}}}},"401":{"description":"Missing or bad key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key has no access to this area"},"404":{"description":"Not found"},"422":{"description":"Invalid"},"429":{"description":"Rate limited"}}}}},"x-webhooks":{"events":["tenant.created","payment.received","workorder.created","workorder.updated","lease.created"],"signature":"RentBook-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256(secret, t + '.' + raw body)>","retries":"Up to 7 tries: right away, then after 1 min, 5 min, 30 min, 2 h, 6 h and 12 h. Any 2xx answer counts as delivered.","headers":["RentBook-Event","RentBook-Delivery","RentBook-Event-Id","RentBook-Timestamp","RentBook-Signature"]}}