Help / Klepsi / API keys

Read Klepsi data through the API

An API key gives Power BI, Excel or a script read-only access to Klepsi data. An administrator creates it in a few clicks.

1

Check that the API module is on

In Settings, Modules tab, the API module must be ticked. Without it, every key is refused, even a valid one. Depending on your plan, the module may not be offered: write to us in that case.

2

Create a key

In Settings, Data tab, API keys block: give it a Name that says what it is for ("Power BI management", for example), then Create a key.

The key starts with tk_. It is shown only once: copy it into your password vault. The list then shows the date it was last used.

A key acts on behalf of the administrator who created it, read-only. It sees everything that administrator sees. If that account is disabled, the key stops working. Revoke a key as soon as it is no longer needed.
3

Pass it in the Authorization header

Every call carries the header Authorization: Bearer tk_…. Only reading (GET) is accepted: a write returns 403. Replace your-instance with the address of your Klepsi.

curl -H 'Authorization: Bearer tk_…' \
  'https://your-instance/api/v1/tasks/?date_from=2026-09-01&date_to=2026-09-30'

Useful addresses

All of them start with https://your-instance/api/v1 and return JSON, unless stated otherwise.

AddressContent
/tasks/Time entries. Filters: date_from, date_to, project_id, user_id.
/projects/Projects.
/clients/Clients.
/users/Users.
/teams/Teams.
/reports/generateThe report for a period, as csv, xlsx, json or pdf. Required parameters: date_from and date_to. Optional: format, group_by (project or user), client_id, project_id.
/absencesAbsences, if the module is on.
/expensesExpense reports, if the module is on.
/settings/data/exportThe full export of the instance, as a zip of CSV files.

Dates are written YYYY-MM-DD. Keep the trailing slash on the addresses that have one.

In Excel or Power BI

Both use Power Query. The simplest way is to start from a blank query and paste the code in the Advanced Editor:

let
    Source = Json.Document(Web.Contents(
        "https://your-instance/api/v1/tasks/",
        [
            Query = [date_from = "2026-09-01", date_to = "2026-09-30"],
            Headers = [Authorization = "Bearer tk_…"]
        ]
    )),
    Entries = Table.FromRecords(Source)
in
    Entries

When Power Query asks how to connect, choose Anonymous: the key is already in the header.

For a ready-to-use table, the /reports/generate address with format=csv is read with Csv.Document instead of Json.Document.

The key is written in clear text in the workbook or report. Do not share the file beyond the people who could see this data in Klepsi.

Need help?

Our support team can walk you through the setup. Write to us at support@aleop.eu.