The SleekTech Open API lets you securely connect your own tools and software to your SleekTech data.
It is a standard web API, so you can pull your properties, tenancies, landlords, maintenance jobs, certificates, statements, supplier bills and full accounts into a spreadsheet, a reporting dashboard, your accounting package, your document system or any custom application you build.
Your tools can also add notes to your records and record certificates.
If you simply want to ask questions about your data in plain English using ChatGPT, Claude or Gemini, you do not need to build anything - see Connecting SleekTech to AI Assistants.
This article is for when you want to build your own connection.
Please Note - This Is a Beta Feature
The Open API is new and we are still actively testing it, so please keep the following in mind:
- Your tools can read everything listed below, and can add and update notes and record certificates.
Nothing can be deleted in SleekTech through the API. - As it is in Beta, it is not yet covered by our full customer support - we are happy to help where we can, but we cannot yet provide full support for building custom integrations.
- It will keep growing.
We keep adding endpoints, including more ways to add and update data, as demand grows. - Your feedback shapes what we build next - please tell us which data and features you would find most useful.
Step 1 - Get Your API Key
An API Key is a secure code that lets your tool connect to your SleekTech data.
You only need to create it once.
Note that only Admin users can create an API key - if you are not an admin, please ask your administrator.
You can create it in the desktop app as below, or in the web app under Settings > API Keys.
- In SleekTech, click your User Profile in the top-right corner of the screen.
- The User Profile window opens.
- Open the API Keys tab.
- Click Create API Key, then choose Open API as the provider and confirm.
- Copy the key immediately and keep it somewhere safe (for example, a password manager) - for security it is shown only once and cannot be retrieved again.
If you lose it, simply delete it and create a new one.
Important - Keep Your API Key Private
Please read this carefully before using your key.
- An API key gives full read access to all of your data, and can add notes and certificates.
It is not limited by user permissions - it can see everything in your account, regardless of what any individual user is allowed to see. - Anyone who has the key has this same full access.
Treat it like a master password. - Only put it into tools and code that you control, and never post it publicly, email it, or commit it to a shared code repository.
- If you think a key may have been seen by someone else, delete it straight away on the API Keys tab and create a new one.
This instantly stops the old key from working.
Step 2 - The Address and the Live Documentation
Everything lives under one base web address:
The API is fully self-documenting.
Open the interactive documentation (Swagger) in your browser to see every available endpoint, the exact fields each one returns, and a "Try it out" button to run live requests:
Whoever builds your integration (an in-house developer, an IT consultant, or an off-the-shelf tool) can work entirely from that page.
Step 3 - Connecting (Authentication)
There are two ways to authenticate.
Both use the same API key.
Add your key as an X-Api-Key header on each request.
This is the quickest way to connect a reporting or spreadsheet tool.
It is read-only: to add notes or certificates, use Option B.
For a server-side application, exchange your key for a temporary access token that lasts one hour, then send that token on each request.
Your key itself is never sent again after the first call.
Then send the token as a Bearer header:
What You Can Do
Every endpoint works on your account only, in easy-to-use JSON.
The full, up-to-date list, with every field and filter, is on the Swagger page above.
The main ones are:
| Properties | GET /v1/properties/list - your properties with landlord, status, current tenant, rent and arrears. Filter by landlordId, statusId or parentPropertyId (the units of a building).GET /v1/properties/full - every property with full detail: acquisition, mortgage, occupancy, current tenancy, rent, arrears and map coordinates. |
| Landlords | GET /v1/landlords - your landlords.GET /v1/landlords/contacts - your landlords with their email and phone. |
| Tenancies | GET /v1/tenancies/list - every tenancy, past, present and future. Filter by propertyId, statusId and dates.GET /v1/tenancies/{id}/people - the tenants, occupiers and guarantors on a tenancy, with their email and phone. |
| Maintenance | GET /v1/maintenance/list - your maintenance jobs with property, landlord, tenant, supplier, dates and cost. Filter by propertyId, landlordId, statusId, isOpen and dates.GET /v1/maintenance/statuses - with /priorities and /categories: your maintenance lookups.GET /v1/suppliers - your suppliers. |
| Certificates | GET /v1/certificates/list - certificates across your portfolio. Filter by propertyId, expiry dates or issue dates.GET /v1/certificates/{id}/file - download a certificate's document.GET /v1/certificates/types - your certificate types.POST /v1/certificates - record a completed inspection, with its document, against a property. |
| Landlord statements | GET /v1/statements/list - statements across your portfolio. Filter by landlordId and dates. hasFile says whether the statement's PDF is saved.GET /v1/statements/{id} - one statement with its income, expense and other lines.GET /v1/statements/{id}/file - download the statement's PDF (see "Statement PDFs" below). |
| Supplier bills (expenses) | GET /v1/expenses/{id} - one supplier invoice or credit note in full. hasFile says whether the bill is stored.GET /v1/expenses/{id}/file - download the supplier's bill.The id is the id on each row of GET /v1/accounts/supplier-invoices. |
| Accounts (transactions) | Four transaction streams, each filterable by date:GET /v1/accounts/tenant-invoicesGET /v1/accounts/tenant-paymentsGET /v1/accounts/supplier-invoicesGET /v1/accounts/supplier-payments |
| Notes, tasks and reminders | GET /v1/notes/list - the notes on a record: propertyId, tenancyId, landlordId, jobId, supplierId, certificateId or expenseId. Or across all records, e.g. by assignedToId, openOnly or due=overdue.POST /v1/notes - add a note, task or reminder to a record, assigned to a member of staff. SleekTech emails them the reminder.PUT /v1/notes/{id} - change a note, move its reminder, or mark it complete.GET /v1/notes/types - the note types (note, call, email, text). |
| Staff | GET /v1/users/list - your staff, id and name, to assign notes to. |
The accounts streams accept ?from= and ?to= dates (they default to the last 12 months) and return the data in pages.
Each response includes a nextCursor value - keep calling with ?cursor= set to that value until it comes back empty to pull an entire date range.
For example:
Statement PDFs
A statement's PDF is saved in SleekTech when the statement is created, but only while the Attach PDF by Default setting is on.
To switch it on:
- In the desktop app, open the Control Panel and select Settings.
- Open the Landlord Statements tab.
- Switch on Attach PDF by Default.
Every statement you create from then on keeps its PDF, ready for GET /v1/statements/{id}/file.
Statements created while the setting was off have no saved PDF.
Examples of What You Can Build
- A live dashboard in Power BI or Excel showing rent collected versus supplier spend per property, refreshed automatically.
- A feed that syncs your transactions into your accounting software (such as Xero or QuickBooks) so you do not re-key figures.
- A small script that flags mortgages maturing in the next 12 months, or tenancies falling into arrears, and emails you a summary.
- A page on your own website or landlord portal that shows each landlord their latest statement.
- A routine that files every statement PDF and supplier bill into your own document system.
- An AI agent that reads your team's emails and adds the updates as notes on the right property or job, with reminders for whoever needs to act.
- Prefer no code at all?
Connect your data to ChatGPT, Claude or Gemini instead and just ask questions.
Good to Know
- Access tokens (Option B) expire after one hour - simply request a new one when needed.
Your API key does not expire until you delete it. - There is a fair-use limit of around 300 requests per minute per key, which is comfortably more than a normal integration needs.
- File downloads (statements, supplier bills and certificates) have their own limit of 60 a minute per key, and every download is recorded in your audit log.
- Notes added through the API are recorded under the user who created the API key, and their history shows they came through the API.
- The set of endpoints keeps growing - see the Beta note near the top, and please send us your feedback.