KeyNest API
REST endpoints to manage properties, tenants, rent, maintenance and Ontario forms. All requests use JSON. Authenticate with a bearer token.
Authorization: Bearer kn_live_•••••••••••••••
Authentication
/v1/auth/sessionCreate a session for a workspace role.
{ "token": "kn_…", "user": { "id": "u_…", "role": "landlord" } }/v1/auth/sessionRevoke the current session.
{ "ok": true }Properties
/v1/propertiesList properties scoped to the caller.
[{ "id": "p_…", "name": "Maple Court", "units": 6 }]/v1/propertiesCreate a property.
{ "id": "p_…", "name": "…", "createdAt": "2026-05-26" }/v1/properties/{id}Retrieve a single property with units.
{ "id": "p_…", "units": [ … ] }/v1/properties/{id}Partially update a property.
{ "id": "p_…", "updatedAt": "…" }/v1/properties/{id}Remove a property from the portfolio.
{ "ok": true }Tenants
/v1/tenantsList tenants, filterable by property and status.
[{ "id": "t_…", "name": "Sarah Thompson", "status": "Active" }]/v1/tenantsCreate a tenant and attach to a unit.
{ "id": "t_…" }/v1/tenants/{id}Update tenant or lease details.
{ "id": "t_…", "leaseEnd": "2026-12-01" }Payments
/v1/paymentsList payments. Filter by tenant, period, status.
[{ "id": "pay_…", "amount": 2400, "status": "Paid" }]/v1/paymentsRecord a manual payment.
{ "id": "pay_…", "status": "Paid" }/v1/payments/{id}Change a payment's status.
{ "id": "pay_…", "status": "Overdue" }Maintenance
/v1/ticketsList maintenance tickets across properties.
[{ "id": "tk_…", "title": "Furnace…", "status": "Open" }]/v1/ticketsOpen a new ticket.
{ "id": "tk_…" }/v1/tickets/{id}Update status, contractor, or cost.
{ "id": "tk_…", "status": "Scheduled" }Ontario forms
/v1/forms/{type}Generate an LTB form (N4, N5, N12, N9, entry, lease).
{ "id": "f_…", "pdfUrl": "https://files.keynest.app/…" }/v1/forms/{id}Retrieve a generated form record.
{ "id": "f_…", "status": "Served" }© 2026 KeyNest API · v1 · Stable