Introduction
Welcome to the hakuna API. You can use our API to:
- Start/stop a timer
- Manage time entries
- Get a list of absences
- Retrieve key metrics (such as overtime)
- Get an overview of your organization (e.g. who is absent, who has a timer running)
- Manage projects, tasks, and clients
Making Requests
GET /api/v1/ping HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
curl 'https://app.hakuna.ch/api/v1/ping' \
-H 'X-Auth-Token: your-token'
All API responses are delivered in the
json
format:
{
"pong": "2016-11-08T13:38:11.086+00:00"
}
Requirements for making requests:
- Add
api
and the API versionv1
in the URL - Provide your authentication token
X-Auth-Token
as a HTTP header
Authentication
To authenticate against hakuna, you need to use an API authentication token and supply it in every request as X-Auth-Token
HTTP header.
You can manage API tokens under "My Settings" (accessible by clicking on your name in the bottom left).
Rate Limits
GET /api/v1/ping HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
curl 'https://app.hakuna.ch/api/v1/ping' \
-H 'X-Auth-Token: your-token'
Response if the rate limit is not exceeded:
HTTP/1.1 200 OK
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99
X-RateLimit-Reset: 60
{
"pong": "2016-11-08T13:38:11.086+00:00"
}
Response if the rate limit is exceeded:
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 38
Retry-After: 38
{
"error": "429 Rate limit exceeded (see `Retry-After` header)"
}
Our API rate limits are setup per customer. We allow 100 requests per minute and customer.
If the rate limit is exceeded, the response will have HTTP status 429 and contain a corresponding JSON structure. The Retry-After
header in the response will indicate how many seconds the client should wait before trying again.
The API also returns the following headers for every request:
X-RateLimit-Limit
: The maximum number of requests that the consumer is permitted to make per minute.X-RateLimit-Reset
: The number of seconds left in the current rate limit window.X-RateLimit-Remaining
: The number of requests remaining in the current rate limit window.
We recommend that you use the X-RateLimit-Remaining
header to determine when you are approaching the rate limit and wait
until the X-RateLimit-Reset
time has passed before making additional requests.
Personal
Overview
Retrieve key metrics
GET /api/v1/overview HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
curl -X "GET" "https://app.hakuna.ch/api/v1/overview" \
-H "Accept-Version: v1" \
-H "X-Auth-Token: your-token"
Response:
{
"overtime": "470:30",
"overtime_in_seconds": 1693800,
"vacation": {
"redeemed_days": 21.5,
"remaining_days": 3.5
}
}
GET /api/v1/overview
Parameter | Description |
---|---|
user_id optional | Return overview for the user with the specified ID. If not provided, the authenticated user is used. |
Retrieves key numbers about your user, e.g. your current overtime.
Attribute | Description |
---|---|
overtime string | Overtime in hh:mm format (as displayed in hakuna) |
overtime_in_seconds integer | Overtime in seconds |
vacation hash | Vacation information (redeemed and remaining days for the current year) |
Timer
{
"date": "2016-11-08",
"start_time": "19:00",
"duration": "02:16",
"duration_in_seconds": 8138,
"note": "Did a lot of work.",
"user": {
"id": 1,
"name": "Ursula Schneider",
"status": "active",
"groups": [
"Administration"
]
},
"task": {
"id": 1,
"name": "Development",
},
"project": {
"id": 3,
"name": "HR",
"archived": false
}
}
Attribute | Description |
---|---|
start_time string | Start time in hh:mm format |
date string | Date when timer was started in yyyy-mm-dd format |
duration string | Duration in hh:mm format (as displayed in hakuna) |
duration_in_seconds integer | Duration in seconds |
note string | Note of the timer |
user object | User object |
task object | Task object |
project object | Optional Project object |
Get Timer
curl -X "GET" "https://app.hakuna.ch/api/v1/timer" \
-H "Accept-Version: v1" \
-H "X-Auth-Token: your-token"
GET /api/v1/timer HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/timer
Parameter | Description |
---|---|
user_id optional | Return timer for the user with the specified ID. If not provided, the authenticated user is used. |
Retrieves the timer.
Start Timer
curl -X "POST" "https://app.hakuna.ch/api/v1/timer" \
-H "Accept-Version: v1" \
-H "X-Auth-Token: your-token" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"project_id": 3,
"task_id": 1,
"note": "Did a lot of work."
}'
POST /api/v1/timer HTTP/1.1
X-Auth-Token: your-token
Content-Type: application/json; charset=utf-8
Host: app.hakuna.ch
Content-Length: 65
{
"project_id": 3,
"task_id": 1,
"note": "Did a lot of work."
}
POST /api/v1/timer
Parameter | Description |
---|---|
user_id optional | User ID. If not provided, the authenticated user is used. |
start_time optional | Start time in hh:mm format, defaults to current time |
project_id depends | Project ID (see Projects). Required if the account-wide project module is enabled. |
task_id required | Task ID (see Task) |
note optional | Note as string |
Starts the timer.
Stop Timer
curl -X "PUT" "https://app.hakuna.ch/api/v1/timer" \
-H "X-Auth-Token: your-token"
PUT /api/v1/timer HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
PUT /api/v1/timer
Parameter | Description |
---|---|
user_id optional | Stop timer for the user with the specified ID. If not provided, the authenticated user is used. |
end_time optional | End time in hh:mm format |
Stops the timer and creates a corresponding Time Entry.
Delete Timer
curl -X "DELETE" "https://app.hakuna.ch/api/v1/timer" \
-H "X-Auth-Token: your-token"
DELETE /api/v1/timer HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
DELETE /api/v1/timer
Parameter | Description |
---|---|
user_id optional | Delete timer for the user with the specified ID. If not provided, the authenticated user is used. |
Deletes the timer.
Time Entries
{
"id": 7043,
"date": "2016-10-11",
"start_time": "12:00",
"end_time": "14:00",
"duration": "02:00",
"duration_in_seconds": 7200,
"note": "This is a long text explaining what I did.",
"user": {
"id": 1,
"name": "Ursula Schneider",
"email": "ursula.schneider@firma.ch",
"status": "active",
"groups": [
"Administration"
]
},
"task": {
"id": 1,
"name": "Entwicklung",
"archived": false
},
"project": {
"id": 3,
"name": "HR",
"archived": false
}
}
Time entries are your "work blocks" and can be created either directly or via timer.
Attribute | Description |
---|---|
id integer | The ID of the time entry |
date string | Date in ISO 8601 format |
start_time string | Start time in hh:mm format |
end_time string | End time in hh:mm format |
duration string | Duration in hh:mm format (as displayed in hakuna) |
duration_in_seconds integer | Duration in seconds |
note string | Note of the time entry |
user object | User object |
task object | Task object |
project object | Optional Project object |
List time entries
curl -X "GET" "https://app.hakuna.ch/api/v1/time_entries?start_date=2016-01-05&end_date=2016-01-08" \
-H "X-Auth-Token: your-token"
GET /api/v1/time_entries?start_date=2016-01-05&end_date=2016-01-08 HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/time_entries?start_date={start_date}&end_date={end_date}
Parameter | Description |
---|---|
user_id optional | Return time entries for the user with the specified ID. If not provided, the authenticated user is used. |
start_date required | Start date of the range from which the time entries are requested (ISO 8601, i.e. yyyy-mm-dd ) |
end_date required | End date of the range from which the time entries are requested (ISO 8601, i.e. yyyy-mm-dd ) |
project_id optional | Filter time entries by project ID |
task_id optional | Filter time entries by task ID |
Retrieves all time entries in the date range specified by start_date
and end_date
.
Get a time entry
curl -X "GET" "https://app.hakuna.ch/api/v1/time_entries/1838" \
-H "X-Auth-Token: your-token"
GET /api/v1/time_entries/1838 HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/time_entries/{id}
Retrieves the time entry specified by id
.
Create a time entry
curl -X "POST" "https://app.hakuna.ch/api/v1/time_entries" \
-H "X-Auth-Token: your-token" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"date": "2016-10-10",
"start_time": "22:00",
"end_time": "23:00",
"note": "This is a long text explaining what I did.",
"project_id": 1,
"task_id": 1
}'
POST /api/v1/time_entries HTTP/1.1
Content-Type: application/json; charset=utf-8
Host: app.hakuna.ch
{
"date": "2016-10-10",
"start_time": "22:00",
"end_time": "23:00",
"note": "This is a long text explaining what I did.",
"project_id": 1,
"task_id": 1
}
POST /api/v1/time_entries
Parameter | Description |
---|---|
user_id optional | User ID. If not provided, the authenticated user is used. |
date required | Date in ISO 8601 format |
start_time required | Start time in hh:mm format |
end_time required | End time in hh:mm format |
project_id depends | Project ID (see Projects). Required if the account-wide project module is enabled. |
task_id required | Task ID (see Tasks) |
note optional | Note of the time entry |
Creates a new time entry.
Update a time entry
curl -X "PATCH" "https://app.hakuna.ch/api/v1/time_entries/128" \
-H "X-Auth-Token: your-token" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"end_time": "23:30:00"
}'
PATCH /api/v1/time_entries/128 HTTP/1.1
X-Auth-Token: your-token
Content-Type: application/json; charset=utf-8
Host: app.hakuna.ch
{
"date": "2016-10-10",
"start_time": "22:00",
"end_time": "23:30",
"note": "This is a long text explaining what I did.",
"project_id": 1,
"task_id": 1
}
PATCH /api/v1/time_entries/{id}
Updates the time entry specified by id
.
Delete a time entry
curl -X "DELETE" "https://app.hakuna.ch/api/v1/time_entries/128" \
-H "X-Auth-Token: your-token"
DELETE /api/v1/time_entries/128 HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
DELETE /api/v1/time_entries/{id}
Deletes the time entry specified by id
.
Absences
{
"id": 148,
"start_date": "2016-01-06",
"end_date": "2016-01-06",
"first_half_day": true,
"second_half_day": false,
"is_recurring": false,
"weekly_repeat_interval": null,
"user": {
"id": 1,
"name": "Ursula Schneider",
"email": "ursula.schneider@firma.ch",
"status": "active",
"groups": [
"Administration"
]
},
"absence_type": {
"id": 10,
"name": "Kompensation",
"grants_work_time": false,
"is_vacation": false,
"archived": false
}
}
Attribute | Description |
---|---|
id integer | The ID of the absence |
start_date date | Start date in ISO 8601 format |
end_date date | End date in ISO 8601 format |
first_half_day boolean | true if this absence covers the the first half day (or the whole day), false otherwise |
second_half_day boolean | true if this absence covers the the second half day (or the whole day), false otherwise |
is_recurring boolean | Whether or not this absence is recurring |
weekly_repeat_interval integer | The weekly repeat interval (if is_recurring is true ) |
user object | User object |
absence_type object | Absence Type object |
List absences
curl -X "GET" "https://app.hakuna.ch/api/v1/absences?year=2016" \
-H "Accept-Version: v1" \
-H "X-Auth-Token: your-token"
GET /api/v1/absences?year=2016 HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/absences?year={year}
Parameter | Description |
---|---|
user_id optional | Return absences for the user with the specified ID. If not provided, the authenticated user is used. |
year required | The year for which the absences are requested |
Retrieves your absences in the supplied year
.
Users
{
"id": 1,
"name": "Ursula Schneider",
"email": "ursula.schneider@firma.ch",
"status": "active",
"groups": [
"Administration"
]
}
Attribute | Description |
---|---|
id integer | The ID of the user |
name string | User name |
email string | User email address |
status string | active or inactive |
groups array | List of groups this user is a member of |
List users you can manage
curl -X "GET" "https://app.hakuna.ch/api/v1/users" \
-H "X-Auth-Token: your-token"
GET /api/v1/users HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/users
Retrieves all user you can manage (as admin or supervisor). See here how to make requests for these users.
Get current user
curl -X "GET" "https://app.hakuna.ch/api/v1/users/me" \
-H "X-Auth-Token: your-token"
GET /api/v1/users/me HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/users/me
Retrieves the currently authenticated user.
Tasks
{
"id": 1,
"name": "Development",
"archived": false,
"default": true
}
Tasks are used to categorize time entries.
Attribute | Description |
---|---|
id integer | The ID to reference this task |
name string | The name of the task |
archived boolean | true if the task has been archived |
default boolean | true if the task is common and gets added to new projects, false otherwise |
List tasks
curl -X "GET" "https://app.hakuna.ch/api/v1/tasks" \
-H "X-Auth-Token: your-token"
GET /api/v1/tasks HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/tasks
Retrieves all tasks
Projects
{
"id": 3,
"name": "HR",
"client": "ABC Inc.",
"tasks": [{
"id": 23,
"name": "Hiring",
"archived": false,
"default": false,
}],
"starts_on": "2024-01-01",
"ends_on": "2024-12-31",
"budget": "10:00",
"budget_in_seconds": 36000,
"budget_is_monthly": true,
"groups": null,
"archived": false,
}
Projects can be assigned to the timer and time entries. This allows to differentiate time spent between different tasks or projects.
Attribute | Description |
---|---|
id integer | The ID of the project |
name string | The name of the project |
client string | The name of the client |
tasks array | List of Tasks assigned to this project |
starts_on string | Start date in ISO 8601 format |
ends_on string | End date in ISO 8601 format |
budget string | Budget in hours for this project (in hh:mm ), or null |
budget_in_seconds integer | Budget in seconds for this project, or null |
budget_is_monthly boolean | true if budget resets every month, false otherwise |
groups array | Groups assigned to this project, null if the project is global |
archived boolean | true if the project has been archived |
List projects
curl -X "GET" "https://app.hakuna.ch/api/v1/projects" \
-H "X-Auth-Token: your-token"
GET /api/v1/projects HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/projects
Retrieves a list of all active and archived projects.
Absence Types
{
"id": 1,
"name": "Paid Leave",
"archived": false,
"grants_work_time": true,
"is_vacation": false
}
Absence types are used to categorize absences (e.g. vacation, sickness).
Attribute | Description |
---|---|
id integer | The ID to reference this absence type |
name string | The name of the absence type |
grants_work_time boolean | if true , the absence type yields a time credit equaling the planned working time in the absent time frame. |
is_vacation boolean | if true , the absence will affect the vacation balance. |
archived boolean | true if the absence type has been archived |
List absence types
curl -X "GET" "https://app.hakuna.ch/api/v1/absence_types" \
-H "X-Auth-Token: your-token"
GET /api/v1/absence_types HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/absence_types
Retrieves all absence types
Company
Fetch company info
curl -X "GET" "https://app.hakuna.ch/api/v1/company" \
-H "X-Auth-Token: your-token"
GET /api/v1/company HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
Response:
{
"company_name": "hakuna AG",
"duration_format": "decimal",
"absence_requests_enabled": true,
"projects_enabled": false,
"groups_enabled": false
}
GET /api/v1/company
Fetches account-wide company info.
Attribute | Description |
---|---|
company_name string | The configured name of the company |
duration_format string | The configured display of duration s, either hhmm or decimal |
absence_requests_enabled boolean | Whether or not absence requests module is enabled |
projects_enabled boolean | Whether or not the projects module is enabled. This setting changes how the Time Entry and Timer endpoints have to be used |
groups_enabled boolean | Whether or not the groups module is enabled |
Organization
Retrieve organization status
curl -X "GET" "https://app.hakuna.ch/api/v1/organization/status" \
-H "Accept-Version: v1" \
-H "X-Auth-Token: your-token"
GET /api/v1/organization/status HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
Response:
[
{
"user": {
"id": 1,
"name": "Ursula Schneider",
"status": "active",
"groups": [
"Administration"
]
},
"absent_first_half_day": false,
"absent_second_half_day": false,
"has_timer_running": true
},
{
"user": {
"id": 2,
"name": "Urs Schneider",
"status": "active",
"groups": [
"Marketing"
]
},
"absent_first_half_day": false,
"absent_second_half_day": true,
"has_timer_running": false
}
]
GET /api/v1/organization/status
Retrieves today's presence/absence information about all users in your organization.
Attribute | Description |
---|---|
user object | User object |
absent_first_half_day boolean | true if the user is absent in the first half day or the whole day (e.g. on vacation or due to part-time workplan). |
absent_second_half_day boolean | true if the user is absent in the second half day or the whole day (e.g. on vacation or due to part-time workplan). |
has_timer_running boolean | true if the user has a timer running |
Management
Projects
{
"id": 3,
"code": "PROJ-123",
"name": "My Project",
"archived": false,
"start_date": "2024-01-14",
"end_date": "2024-03-31",
"notes": "This is a text explaining what this project is about.",
"client": {
"id": 12,
"name": "ABC Inc."
},
"tasks": [{
"id": 23,
"name": "Hiring",
"archived": false,
"default": false
}]
}
This endpoint allows you to manage projects.
Attribute | Description |
---|---|
id integer | The ID of the project |
code string | The code of the project |
name string | The name of the project |
archived boolean | true if the project has been archived |
start_date string | Start date in ISO 8601 format |
end_date string | End date in ISO 8601 format |
notes string | Project notes |
client object | The Client object of the project |
tasks array | List of Task objects assigned to this project |
List projects
curl -X "GET" "https://app.hakuna.ch/api/v1/management/projects" \
-H "X-Auth-Token: your-token"
GET /api/v1/management/projects HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/management/projects
Retrieves a list of all active and archived projects.
Get a project
curl -X "GET" "https://app.hakuna.ch/api/v1/management/projects/1325" \
-H "X-Auth-Token: your-token"
GET /api/v1/management/projects/1325 HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/management/projects/{id}
Retrieves the project specified by id
.
Create project
curl -X "POST" "https://app.hakuna.ch/api/v1/management/projects" \
-H "X-Auth-Token: your-token" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"code": "PROJ-123",
"name": "My Project",
"archived": false,
"start_date": "2024-01-14",
"end_date": "2024-03-31",
"notes": "This is a text explaining what this project is about.",
"client_id": 326,
"task_ids": [131, 232],
}'
POST /api/v1/management/projects HTTP/1.1
Content-Type: application/json; charset=utf-8
Host: app.hakuna.ch
{
"code": "PROJ-123",
"name": "My Project",
"archived": false,
"start_date": "2024-01-14",
"end_date": "2024-03-31",
"notes": "This is a text explaining what this project is about.",
"client_id": 326,
"task_ids": [131, 232]
}
POST /api/v1/management/projects
Parameter | Description |
---|---|
code optional | The code of the project |
name required | The name of the project |
archived optional | true if the project should be archived |
start_date optional | Start date in ISO 8601 format |
end_date optional | End date in ISO 8601 format |
notes optional | Project notes |
client_id required | The client ID of the project (see Clients) |
task_ids required | Array of task IDs assigned to this project (see Tasks) |
Creates a new project.
Update a project
curl -X "PATCH" "https://app.hakuna.ch/api/v1/management/projects/128" \
-H "X-Auth-Token: your-token" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"name": "My New Project",
}'
PATCH /api/v1/management/projects/128 HTTP/1.1
X-Auth-Token: your-token
Content-Type: application/json; charset=utf-8
Host: app.hakuna.ch
{
"name": "My New Project"
}
PATCH /api/v1/management/projects/{id}
Updates the project specified by id
.
Delete a project
curl -X "DELETE" "https://app.hakuna.ch/api/v1/management/projects/128" \
-H "X-Auth-Token: your-token"
DELETE /api/v1/management/projects/128 HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
DELETE /api/v1/management/projects/{id}
Deletes the project specified by id
.
Clients
{
"id": 3,
"name": "ACME Inc.",
}
Clients can be assigned to projects.
Attribute | Description |
---|---|
id integer | The ID of the client |
name string | The name of the client |
List clients
curl -X "GET" "https://app.hakuna.ch/api/v1/management/clients" \
-H "X-Auth-Token: your-token"
GET /api/v1/management/clients HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/management/clients
Retrieves a list of all clients.
Get a client
curl -X "GET" "https://app.hakuna.ch/api/v1/management/clients/3" \
-H "X-Auth-Token: your-token"
GET /api/v1/management/clients/3 HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/management/clients/{id}
Retrieves the client specified by id
.
Create client
curl -X "POST" "https://app.hakuna.ch/api/v1/management/clients" \
-H "X-Auth-Token: your-token" \
-H "Content-Type: application/json" \
-d $'{
"name": "ACME Inc."
}'
POST /api/v1/management/clients HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
Content-Type: application/json
{
"name": "ACME Inc."
}
Parameter | Description |
---|---|
name required | The name of the client |
Creates a new client.
Update client
curl -X "PATCH" "https://app.hakuna.ch/api/v1/management/clients/3" \
-H "X-Auth-Token: your-token" \
-H "Content-Type: application/json" \
-d $'{
"name": "ACME Inc. Ltd."
}'
PATCH /api/v1/management/clients/3 HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
Content-Type: application/json
{
"name": "ACME Inc. Ltd."
}
Updates the client specified by id
.
Delete client
curl -X "DELETE" "https://app.hakuna.ch/api/v1/management/clients/3" \
-H "X-Auth-Token
DELETE /api/v1/management/clients/3 HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
DELETE /api/v1/management/clients/{id}
Deletes the client specified by id
.
Tasks
{
"id": 1,
"name": "Development",
"default": true,
"archived": false
}
Tasks can be assigned to projects and are used to categorize time entries.
Attribute | Description |
---|---|
id integer | The ID of the task |
name string | The name of the task |
default boolean | true if this is a default task and will automatically be added to new projects created through the UI |
archived boolean | true if the task has been archived |
List tasks
curl -X "GET" "https://app.hakuna.ch/api/v1/management/tasks" \
-H "X-Auth-Token: your-token"
GET /api/v1/management/tasks HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/management/tasks
Retrieves a list of all active and archived tasks.
Get a task
curl -X "GET" "https://app.hakuna.ch/api/v1/management/tasks/1" \
-H "X-Auth-Token: your-token"
GET /api/v1/management/tasks/1 HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
GET /api/v1/management/tasks/{id}
Retrieves the task specified by id
.
Create task
curl -X "POST" "https://app.hakuna.ch/api/v1/management/tasks" \
-H "X-Auth-Token: your-token" \
-H "Content-Type: application/json" \
-d $'{
"name": "Development"
"default": false,
"archived": false
}'
POST /api/v1/management/tasks HTTP/1.1
Content-Type: application/json
Host: app.hakuna.ch
{
"name": "Development"
"default": false,
"archived": false
}
POST /api/v1/management/tasks
Parameter | Description |
---|---|
name required | The name of the task |
default optional | true if this is a default task and will automatically be added to new projects created through the UI |
archived optional | true if the task should be archived |
Creates a new task.
Update task
curl -X "PATCH" "https://app.hakuna.ch/api/v1/management/tasks/1" \
-H "X-Auth-Token: your-token" \
-H "Content-Type: application/json" \
-d $'{
"name": "Development X"
}'
PATCH /api/v1/management/tasks/1 HTTP/1.1
Content-Type: application/json
Host: app.hakuna.ch
{
"name": "Development X",
}
PATCH /api/v1/management/tasks/{id}
Updates the task specified by id
.
Delete task
curl -X "DELETE" "https://app.hakuna.ch/api/v1/management/tasks/1" \
-H "X-Auth-Token: your-token"
DELETE /api/v1/management/tasks/1 HTTP/1.1
X-Auth-Token: your-token
Host: app.hakuna.ch
DELETE /api/v1/management/tasks/{id}
Deletes the task specified by id
.