If you have created an API key following the steps in this guide, you are ready to make API calls with Kala.
API docs
API calls are made to the address https://app.kala.dk/webapiv2/ followed by an API call. The result of a call is always returned as JSON.
Index
The Index endpoint always returns “API READY”.
GET | POST https://app.kala.dk/webapiv2/Index
Parameters:
int company // Company number
string apikey // API key
Returns:
{
status = "API READY"
}
Ping
The Ping endpoint checks the API key and returns “pong” if the key is valid.
GET | POST https://app.kala.dk/webapiv2/Ping
Parameters:
string api_key // API-nøgle
Returns:
{
pong = "pong"
}
CustomersList
The CustomersList endpoint returns a paginated list of customers in the Kala company.
GET https://app.kala.dk/webapiv2/CustomersList
Parameters:
string api_key // API key
string order // 'asc' | 'desc'
int page // Page number
int page_size // Page size
Returns:
id: number, // Customer ID in Kala
number: string, // Customer number
company: string, // Company name
firstname: string, // Contact's first name
lastname: string, // Contact's last name
phone: string, // Phone number
email: string, // Email adress
cvr: string, // CVR number
street_address: string, // Address
zip: string // ZIP code
ActiveEmployeesList
The ActiveEmployeesList endpoint returns a paginated list of active employees.
GET https://app.kala.dk/webapiv2/ActiveEmployeesList
Parameters:
string api_key // API-nøgle
string order // 'acs | 'desc'
int page // Page
int page_size // Page size
Returns:
{
number: number, // Employee number
name: string, // Name
title: string, // Title
image: string, // Profile image filename
phone: string, // Phone number
isAdmin: boolean, // Indicates if the employee is the company creator
isLeader: boolean, // Indicates if the employee has manager permissions
settings: { // List of settings for this employee
key: string, // Setting key
value: string // Setting value
}[]
}[]
ProjectsList
The ProjectsList endpoint returns a paginated list of projects accessible by a given employee.
GET https://app.kala.dk/webapiv2/ProjectsList
Parameters:
string api_key // API key
int employeeNumber // Employee number
string order // 'asc' | 'desc'
int page // Page
int page_size // Page size
Returns:
{
id: number, // Project ID
economyCaseNumber: string, // Accounting system number
name: string, // Project name
openTasks { // Opgaveliste
id: number, // Task ID
name: string, // Task name
description: string // Task description
}[]
}[]
Optional parameters:
string extraFields = isArchived // Returns an extra info on whether or not the project is archived
string extraFields = excludeHidden // Excludes projects that are marked as hidden (eg. finished in Economy)
string extraFields = includeFinished // Includes projects that are marked as finished
AddHours
The AddHours endpoint logs hours for a project (and task).
POST https://app.kala.dk/webapiv2/AddHours
Parameters:
string api_key // API key
int employeenumber // Employee number for the employee being logged
DateTime date // Date string for time log, e.g., 'Tue, 07 Nov 2023 08:30:33 GMT'
int projectId // Project ID for the selected project
double Hours // Hours logged (decimal format, see below)
int? taskId // Task ID for the task being logged - omit to log under 'Unspecified task'
string? startClock // Start time for the time registration - optional, see time format below
string? endClock // End time for the registration - optional, see time format below
Hours are formatted as a decimal representation.
The whole number represents hours, and the decimal part represents minutes as the corresponding fraction of an hour.
The minute decimal can be calculated as follows:

Example:

Returns:
{
succes: boolean, // Success indicator
status: string, // Status string
errors: string[], // Error messages
message: string // Detailed message
}
SetEmployeeSetting
The SetEmployeeSetting endpoint sets a setting for a specific employee. If the setting does not already exist, it will be created.
POST https://app.kala.dk/webapiv2/SetEmployeeSetting
Parameters:
string api_key // API key
string employeeNumber // Employee number
string key // Setting key
string value // Setting value
string friendlyName // Human-readable name for the setting
string type // Data type of the setting value
Returns:
{
succes: boolean // Indicates whether the setting was saved
status: string // Status string
id: number // ID of the setting
}
GetMessageOfTheDay
The GetMessageOfTheDay endpoint returns the message of the day.
GET https://app.kala.dk/webapiv2/GetMessageOfTheDay
Parameters:
string api_key // API key
int employeeNumber // Employee number
Returns:
{
msg: string // Message of the day
}
GetPauseCase
The GetPauseCase endpoint returns the case for pause-time registration. If no pause case exists, null is returned.
POST | GET https://app.kala.dk/webapiv2/GetPauseCase
Parameters:
string api_key // API key
int employeeNumber // Employee number
Returns:
{
caseId: number // Case ID for the pause case, null if none
}
MarkCliDone
The MarkCliDone endpoint marks a task as completed.
POST https://app.kala.dk/webapiv2/MarkCliDone
Parameters:
string api_key // API key
ind cliId // Task ID to mark as completed
Returns:
{
success: boolean // Indicates whether the task was marked as completed
status: string // Status string
}
CreateCase
The CreateCase endpoint creates a new case and returns the ID of the new case.
POST https://app.kala.dk/webapiv2/CreateCase
Parameters:
string api_key // API key
string caseName // Case name
string customerFirstName // Customer's first name (used if creating a new customer)