API Documentation

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:

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)

More guides from the same category