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, certificates, statements and full accounts into a spreadsheet, a reporting dashboard, your accounting package, or any custom application you build.


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:

  • It is currently read-only - your tools can read your data, but nothing can be changed, added or 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 will add more and more read endpoints, and in time write endpoints (creating and updating 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.


  • 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. 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.


Option A - Send the Key on Every Request (simplest)

Add your key as an X-Api-Key header on each request. This is the quickest way to connect a reporting or spreadsheet tool, and it is read-only.

curl https://connect.sleek-tech.co.uk/v1/properties \
  -H "X-Api-Key: YOUR_API_KEY"


Option B - Exchange the Key for a Token (for software)

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.

curl -X POST https://connect.sleek-tech.co.uk/v1/auth/token \
  -H "Content-Type: application/json" \
  -d '{ "apiKey": "YOUR_API_KEY" }'

# response:
# { "access_token": "eyJ...", "token_type": "bearer", "expires_in": 3600 }

Then send the token as a Bearer header:

curl https://connect.sleek-tech.co.uk/v1/properties \
  -H "Authorization: Bearer eyJ..."


What You Can Pull

Every endpoint returns data for your account only, in easy-to-use JSON. The full, up-to-date list is on the Swagger page above; the main ones are:


PropertiesGET /v1/properties - your property list.
GET /v1/properties/full - every property with full detail: acquisition, mortgage, occupancy, current tenancy, rent, arrears and map coordinates.
LandlordsGET /v1/landlords - your landlords / owners.
TenanciesGET /v1/tenancies?propertyId={id} - the current tenancy for a property.
CertificatesGET /v1/certificates/property/{id} - active compliance certificates and their status for a property.
Landlord statementsGET /v1/statements/owner/{id} - all statements for a landlord.
GET /v1/statements/{id} - one statement with its income, expense and other lines.
ExpensesGET /v1/expenses/{id} - one supplier invoice with a secure download link to the document.
Accounts (transactions)Four transaction streams, each filterable by date:
GET /v1/accounts/tenant-invoices
GET /v1/accounts/tenant-payments
GET /v1/accounts/supplier-invoices
GET /v1/accounts/supplier-payments


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:

GET /v1/accounts/supplier-payments?from=2026-01-01&to=2026-06-30


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.
  • 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.
  • The set of endpoints is limited for now and will keep growing - see the Beta note near the top, and please send us your feedback.


Related Articles