Clockify API

Welcome to the Clockify API documentation. By using our REST-based API, you can integrate Clockify into your existing apps, or create new ones. Feel free to post any questions you have on Stack Overflow with the clockify tag.

Note: We also have the working API. It contains all the actions and endpoints, including the one for getting reports. But, the working API is unstable and prone to changes. Feel free to use the deprecated endpoints if they still work and if you can't find the endpoint you need here. With time, we'll transfer the missing endpoints here, to the stable API.

API Base Endpoint
https://api.clockify.me/api/v1
Terms of Service: https://clockify.me/terms
Version: v1

Authentication

All requests need to be authenticated with API key, which you can find in your Profile Settings.

The API key must be used with the X-Api-Key header or you'll get "Full authentication is required to access this resource" response.

X-Api-Key

name
X-Api-Key
in
header
Example request
curl -H "content-type: application/json" -H "X-Api-Key: {yourAPIkey}" -X GET https://api.clockify.me/api/v1/user

Client

Endpoints for manipulating CLIENT resource

Find clients on workspace

GET /workspaces/{workspaceId}/clients
name: string
in query

If provided, clients will be filtered by name

page: integer 1
in query

page

page-size: integer 50
in query

page-size

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "id": "5b1e52ff0cb8792ed75992c1",
    "name": "Client",
    "workspaceId": "5c0fe3290cl84304845dbf1f"
  }
]

Add a new client to workspace

POST /workspaces/{workspaceId}/clients

Contains a new client name

Request Content-Types: application/json
Request Example
{
  "name": "Client"
}
201 Created

Created

400 Bad Request

Client with that name already exists on workspace

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (201 Created)
{
  "id": "5b1e52ff0cb8792ed75992c1",
  "name": "Client",
  "workspaceId": "5c0fe3290cl84304845dbf1f"
}

Project

Endpoints for manipulating PROJECT resource

Find projects on workspace

GET /workspaces/{workspaceId}/projects
name: string
in query

If provided, projects will be filtered by name.

page: integer 1
in query

page

page-size: integer 50
in query

page-size

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "archived": "false",
    "billable": "true",
    "client": {
      "id": "5b1e52ff0cb8792ed75992c1",
      "name": "Client 1",
      "workspaceId": "5c0fe3290cl84304845dbf1f"
    },
    "clientId": "5b1e52ff0cb8792ed75992c1",
    "color": "#f44336",
    "estimate": {
      "estimate": "PT1H30M15S", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
      "type": "AUTO" (Type values: AUTO, MANUAL)
    },
    "hourlyRate": {
      "amount": "15",
      "currency": "USD"
    },
    "id": "5b1667790cb8797321f3d664",
    "memberships": [
      {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "target": "5b1667790cb8797321f3d664",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
      }
    ],
    "name": "Clockify 2",
    "public": "false",
    "tasks": [
      {
        "assigneeIds": ["593e40aab0798735d0392a2d"],
        "estimate": "PT0S", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
        "id": "5b1e6b160cb8793dd93ec120",
        "name": "Task 1",
        "projectId": "5b1667790cb8797321f3d664",
        "status": "ACTIVE" (Status: ACTIVE, DONE)
      }
    ],
    "workspaceId": "5b152d9b0cb8797f86cbe14f"
  }
]

Add a new project to workspace

POST /workspaces/{workspaceId}/projects

Contains info about new project.

Request Content-Types: application/json
Request Example

{
  "name": "My API Project",
  "clientId": "",
  "isPublic": "false",
  "estimate": {
      "estimate": "3600", (number in hours)
      "type": "AUTO" (Type: AUTO, MANUAL)
  },
  "color": "#f44336",
  "billable": "true"
}
201 Created

Created

400 Bad Request

Project with that name already exists on workspace.

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (201 Created)
{
  "archived": "false",
  "billable": "true",
  "clientId": "",
  "clientName": "",
  "color": "string",
  "duration": "PT0S", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
  "estimate": {
    "estimate": "PT1H0M0S", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "type": "AUTO" (Type: AUTO, MANUAL)
  },
  "hourlyRate": {
    "amount": "0",
    "currency": "USD"
  },
  "id": "5b1e6b160cb8793dd93ec120",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "10",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "targetId": "5b1e6b160cb8793dd93ec120",
      "userId": "5a9e9a39b079874a74cfa980"
    }
  ],
  "name": "My Api Project",
  "public": "false",
  "workspaceId": "5b152d9b0cb8797f86cbe14f"
}

Delete project from workspace

DELETE /workspaces/{workspaceId}/projects/{id}

OK

204 No Content

No Content

400 Bad Request

Project with specified id not found

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Response Content-Types: */*
Response Example (200 OK)
{
  "archived": "false",
  "billable": "true",
  "clientId": "",
  "clientName": "",
  "color": "string",
  "duration": "PT0S", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
  "estimate": {
    "estimate": "PT1H0M0S", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "type": "AUTO" (Type: AUTO, MANUAL)
  },
  "hourlyRate": {
    "amount": "0",
    "currency": "USD"
  },
  "id": "5b1e6b160cb8793dd93ec120",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "10",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "targetId": "5b1e6b160cb8793dd93ec120",
      "userId": "5a9e9a39b079874a74cfa980"
    }
  ],
  "name": "My Api Project",
  "public": "false",
  "workspaceId": "5b152d9b0cb8797f86cbe14f"
}

Tag

Endpoints for manipulating TAG resource

Tag

Find tags on workspace

GET /workspaces/{workspaceId}/tags
name: string
in query

If provided, tags will be filtered by name.

page: integer 1
in query

page

page-size: integer 50
in query

page-size

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "id": "5a7c5d2db079870147fra234",
    "name": "Tag 1",
    "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
  }
]
Tag

Add a new tag to workspace

POST /workspaces/{workspaceId}/tags

Contains a new tag name.

Request Content-Types: application/json
Request Example
{
  "name": "Tag 1"
}
201 Created

Created

400 Bad Request

Tag with that name already exists on workspace

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (201 Created)
{
  "id": "5a7c5d2db079870147fra234",
  "name": "Tag 1",
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Task

Endpoints for manipulating TASK resource

Find tasks on project

GET /workspaces/{workspaceId}/projects/{projectId}/tasks
is-active: boolean
in query

If provided and true, only active tasks will be returned. Otherwise only finished tasks will be returned.

name: string
in query

If provided, tasks will be filtered by name.

page: integer 1
in query

page

page-size: integer 50
in query

page-size

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "assigneeIds": ["593e40aab0798735d0392a2d"],
    "estimate": "PT0S", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "id": "5b1e6b160cb8793dd93ec120",
    "name": "Task 1",
    "projectId": "5b1667790cb8797321f3d664",
    "status": "ACTIVE" (Status: ACTIVE, DONE)
  }
]

Add a new task on project

POST /workspaces/{workspaceId}/projects/{projectId}/tasks

Contains info about new task.

Request Content-Types: application/json
Request Example
{
  "name": "Task 1",
  "projectId": "5b1667790cb8797321f3d664",
  "assigneeIds": ["593e40aab0798735d0392a2d"], (optional)
  "estimate": "PT2H", (optional)
  "status": "ACTIVE" (optional)
}
201 Created

Created

400 Bad Request

Task with that name already exists on project, or specified project doesn't exist

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (201 Created)
{
  "assigneeIds": ["593e40aab0798735d0392a2d"],
  "estimate": "PT2H", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
  "id": "5b1e6b160cb8793dd93ec120",
  "name": "Task 1",
  "projectId": "5b1667790cb8797321f3d664",
  "status": "ACTIVE" (Status: ACTIVE, DONE)
}

Timesheet templates

Endpoints for manipulating TEMPLATE resource

Get templates for current user on specified workspace

GET /v1/workspaces/{workspaceId}/templates
name: string
in query

If provided, clients will be filtered by name

cleansed: boolean false
in query

If provided, returned templates will contain only project-task pairs which on which user can track time. Example: If project which was used in template, gets archived meanwhile, it will not be returned since you can't track time on archived project.

hydrated: boolean false
in query

If provided, returned template's project and task will be returned in full and not just their ids.Note that if you request hydrated entity version, projectId and taskId will be changed to project and task inrequest response.

page: integer 1
in query

page

page-size: integer 50
in query

page-size

200 OK

OK

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
 {
   "id": "5b1a9669b0798772bffd86b2",
   "name": "Saved template",
   "userId": "592d432fb0798734a9ce5b56",
   "workspaceId": "592d432fb0798734a9ce5b57"
   "projectsAndTasks": [
     {
       "projectId": "592d476cb0798734a9ce5b90",
       "taskId": "592d7082b0798734a9ce5bc0"
     }
   ]
 }
]                       

Save templates to workspace

POST /v1/workspaces/{workspaceId}/templates

It is possible to create multiple templates at once with this request.

Contains information about one template.

Request Content-Types: application/json
Request Example
[
 {
   "name": "Saved template",
   "projectsAndTasks": [
     {
       "projectId": "592d476cb0798734a9ce5b90",
       "taskId": "592d7082b0798734a9ce5bc0"
     }
   ]
 }
]                   
200 OK

OK

201 Created

Created

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
 {
   "id": "5b1a9669b0798772bffd86b2",
   "name": "Saved template",
   "userId": "592d432fb0798734a9ce5b56",
   "workspaceId": "592d432fb0798734a9ce5b57",
   "projectsAndTasks": [
     {
       "projectId": "592d476cb0798734a9ce5b90",
       "taskId": "592d7082b0798734a9ce5bc0"
     }
   ]
 }
]                   

Get template from workspace

GET /v1/workspaces/{workspaceId}/templates/{templateId}
cleansed: boolean false
in query

If provided, returned templates will contain only project-task pairs which on which user can track time. Example: If project which was used in template, gets archived meanwhile, it will not be returned since you can't track time on archived project.

hydrated: boolean false
in query

If provided, returned template's project and task will be returned in full and not just their ids.Note that if you request hydrated entity version, projectId and taskId will be changed to project and task inrequest response.

200 OK

OK

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
 "id": "5b1a9669b0798772bffd86b2",
 "name": "Saved template",
 "userId": "592d432fb0798734a9ce5b56",
 "workspaceId": "592d432fb0798734a9ce5b57"
 "projectsAndTasks": [
   {
     "projectId": "592d476cb0798734a9ce5b90",
     "taskId": "592d7082b0798734a9ce5bc0"
   }
 ]
}
 

Delete saved template

DELETE /v1/workspaces/{workspaceId}/templates/{templateId}
200 OK

OK

204 No Content

No Content

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Response Content-Types: */*
Response Example (200 OK)
{
 "id": "5b1a9669b0798772bffd86b2",
 "name": "Saved template",
 "userId": "592d432fb0798734a9ce5b56",
 "workspaceId": "592d432fb0798734a9ce5b57"
 "projectsAndTasks": [
   {
     "projectId": "592d476cb0798734a9ce5b90",
     "taskId": "592d7082b0798734a9ce5bc0"
   }
 ]
}
 

Change saved template name

PATCH /v1/workspaces/{workspaceId}/templates/{templateId}

New name must be different from any existing template for user on workspace.

Request Content-Types: application/json
Request Example
{
   "name": "Updated template"
 }
 
200 OK

OK

204 No Content

No Content

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Response Content-Types: */*
Response Example (200 OK)
{
 "id": "5b1a9669b0798772bffd86b2",
 "name": "Updated template",
 "userId": "592d432fb0798734a9ce5b56",
 "workspaceId": "592d432fb0798734a9ce5b57"
 "projectsAndTasks": [
   {
     "projectId": "592d476cb0798734a9ce5b90",
     "taskId": "592d7082b0798734a9ce5bc0"
   }
 ]
}
 

Time entry

Endpoints for manipulating TIMEENTRY resource

Add a new time entry to workspace

If end is not sent in request means that stopwatch mode is active, otherwise time entry is manually added.

'start' is the only mandatory field in this request.

POST /workspaces/{workspaceId}/time-entries

Contains info about new time entry.

Request Content-Types: application/json
Request Example
{
  "start": "2018-06-12T13:48:14.000Z",
  "billable": "true",
  "description": "Writing documentation",
  "projectId": "5b1667790cb8797321f3d664",
  "taskId": "5b1e6b160cb8793dd93ec120",
  "end": "2018-06-12T13:50:14.000Z",
  "tagIds": [
    "5a7c5d2db079870147fra234"
  ],
}
201 Created

Created

400 Bad Request

Project//Tag doesn't exist or doesn't belong to workspace; Task doesn't exist or doesn't belong to project; Start datetime is after end datetime;Time entry requires additional info (check workspace settings);

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (201 Created)
{
  "billable": "true",
  "description": "Writing documentation",
  "id": "5b0fdf2a0cb87904845dfer5",
  "isLocked": "false",
  "projectId": "5b1667790cb8797321f3d664",
  "tagIds": [
    "5a7c5d2db079870147fra234"
  ],
  "taskId": "5b1e6b160cb8793dd93ec120",
  "timeInterval": {
    "duration": "PT2M", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "end": "2018-06-12T13:48:14Z",
    "start": "2018-06-12T13:50:14Z"
  },
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Get time entry on workspace

GET /workspaces/{workspaceId}/time-entries/{id}
consider-duration-format: boolean
in query

If provided, returned timeentry's duration will be rounded to minutes or seconds based on duration format (hh:mm or hh:mm:ss) from workspace settings.

hydrated: boolean
in query

If provided, returned timeentry's project,task and tags will be returned in full and not just their ids. Note that if you request hydrated entity version, projectId, taskId and tagIds will be changed to project, task and tags in request response.

OK

400 Bad Request

Time entry with given ID doesn't exist

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "billable": "true",
  "description": "Writing documentation",
  "id": "5b0fdf2a0cb87904845dfer5",
  "isLocked": "false",
  "projectId": "5b1667790cb8797321f3d664",
  "tagIds": [
    "5a7c5d2db079870147fra234"
  ],
  "taskId": "5b1e6b160cb8793dd93ec120",
  "timeInterval": {
    "duration": "PT2M",  (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "end": "2018-06-12T13:50:14Z",
    "start": "2018-06-12T13:48:14Z"
  },
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Update time entry on workspace

PUT /workspaces/{workspaceId}/time-entries/{id}

Contains updated time entry.

Request Content-Types: application/json
Request Example
{
  "start": "2018-06-12T14:00:37Z",
  "billable": "true",
  "description": "Writing documentation updated",
  "projectId": "5b1667790cb8797321f3d664",
  "taskId": "5b1e6b160cb8793dd93ec120",
  "end": "2018-06-12T14:01:41Z",
  "tagIds": [
    "5a7c5d2db079870147fra234"
  ]
}

OK

201 Created

Created

400 Bad Request

Project/Tag doesn't exist or doesn't belong to workspace; Task doesn't exist or doesn't belong to project; Start datetime is after end datetime

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "billable": "true",
  "description": "Writing documentatio updated",
  "id": "5b0fdf2a0cb87904845dfer5",
  "isLocked": "false",
  "projectId": "5b1667790cb8797321f3d664",
  "tagIds": [
    "5a7c5d2db079870147fra234"
  ],
  "taskId": "5b1e6b160cb8793dd93ec120",
  "timeInterval": {
    "duration": "PT1M4S", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "end": "2018-06-12T14:01:41Z",
    "start": "2018-06-12T14:00:37Z"
  },
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Delete time entry from workspace

DELETE /workspaces/{workspaceId}/time-entries/{id}
204 No Content

No Content

400 Bad Request

Time entry with given ID doesn't exist or doesn't belong to workspace

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Response Content-Types: */*

Find time entries for user on workspace

Gets a time entry for specified user on workspace. Filters can be applied as query parameters listed below

GET /workspaces/{workspaceId}/user/{userId}/time-entries

Requires WORKSPACE_OWN or WORKSPACE_ADMIN permissions to see other user's time entries.

description: string
in query

If provided, time entries will be filtered by description.

start: string
in query

If provided, only time entries that started after the specified datetime will be returned. Datetime must be in ISO-8601 format (eg. "2019-04-16T05:15:32.998Z"). You send time based on your timezone (from Profile Settings), and get results in UTC.

end: string
in query

If provided, only time entries that started before the specified datetime will be returned. Datetime must be in ISO-8601 format (eg. 2019-04-16T05:15:32.998Z"). You send time based on your timezone (from Profile Settings), and get results in UTC.

project: string
in query

If provided, time entries will be filtered by project.

task: string
in query

If provided, time entries will be filtered by task.

tags: string[]
in query

If provided, time entries will be filtered by tags. This parameter is an array of tag ids.

Array values passed as multiple parameters: ?tags=tagId_1&tags=tagId_2
project-required: boolean 1
in query

If provided, only time entries with project will be returned.

task-required: boolean 1
in query

If provided, only time entries with task will be returned.

consider-duration-format: boolean
in query

If provided, returned timeentry's duration will be rounded to minutes or seconds based on duration format (hh:mm or hh:mm:ss) from workspace settings.

hydrated: boolean
in query

If provided, returned timeentry's project,task and tags will be returned in full and not just their ids. Note that if you request hydrated entity version, projectId, taskId and tagIds will be changed to project, task and tags in request response.

in-progress: boolean
in query

If provided, all other filters will be ignored and, if present, currently running time entry will be returned.

page: integer 1
in query

page

page-size: integer 50
in query

page-size

OK

400 Bad Request

User with given ID doesn't exist

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "billable": "true",
    "description": "Writing documentation",
    "id": "5b0fdf2a0cb87904845dfer5",
    "isLocked": "false",
    "projectId": "5b1667790cb8797321f3d664",
    "tagIds": [
      "5a7c5d2db079870147fra234"
    ],
    "taskId": "5b1e6b160cb8793dd93ec120",
    "timeInterval": {
      "duration": "PT1M4S", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
      "end": "2018-06-12T14:01:41Z",
      "start": "2018-06-12T14:00:37Z"
    },
    "userId": "6h1e49bf0cb8790e43d6c9ab",
    "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
  }
]

Add a new time entry for another user on workspace

Adding time for others is a premium feature. This API endpoint works only for workspaces with active Premium subscription.

You specify for which user you're adding time in the request's POST path.

If you leave out end time, you'll start a timer for that person. To stop the timer, you'll have to use the "PUT /workspaces/{workspaceId}/time-entries/{timeEntryId}/end" PATH (request example: {"end":"2019-02-07T14:00:07.000Z"}

POST /workspaces/{workspaceId}/user/{userId}/time-entries

Contains information about new time entry.

Request Content-Types: application/json
Request Example
{
  "start": "2018-06-12T13:48:14.000Z",
  "billable": "true",
  "description": "Writing documentation",
  "projectId": "5b1667790cb8797321f3d664",
  "taskId": "5b1e6b160cb8793dd93ec120",
  "end": "2018-06-12T13:50:14.000Z",
  "tagIds": [
    "5a7c5d2db079870147fra234"
  ]
}
201 Created

Created

400 Bad Request

Project/Tag/User doesn't exist or doesn't belong to workspace; Task doesn't exist or doesn't belong to project; Start datetime is after end datetime;Time entry requires additional info (check workspace settings)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (201 Created)
{
  "billable": "true",
  "description": "Writing documentation",
  "id": "5b0fdf2a0cb87904845dfer5",
  "isLocked": "false",
  "projectId": "5b1667790cb8797321f3d664",
  "tagIds": [
    "5a7c5d2db079870147fra234"
  ],
  "taskId": "5b1e6b160cb8793dd93ec120",
  "timeInterval": {
    "duration": "PT2M", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "end": "2018-06-12T13:50:14Z",
    "start": "2018-06-12T13:48:14Z"
  },
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Stops currently running time entry on workspace

Admins can stop someone else's running timers on Premium workspaces (Add time for others feature).

If workspace has a required field enabled (eg. the Timesheet is enabled and project is a required field as a result), you won't be able to stop the timer until you fill in the required field(s). You'll simply get "Entity not created" message.

PATCH /workspaces/{workspaceId}/user/{userId}/time-entries

Contains end datetime

Request Content-Types: application/json
Request Example
{
  "end": "2018-06-12T14:01:41Z"
}

OK

204 No Content

No Content

400 Bad Request

Required information is not present on currently running time entry. Check your workspace settings.

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Currently running time entry was not found on workspace

Response Content-Types: */*
Response Example (200 OK)
{
  "billable": "true",
  "description": "Writing documentation updated",
  "id": "5b0fdf2a0cb87904845dfer5",
  "isLocked": "false",
  "projectId": "5b1667790cb8797321f3d664",
  "tagIds": [
    "5a7c5d2db079870147fra234"
  ],
  "taskId": "5b1e6b160cb8793dd93ec120",
  "timeInterval": {
    "duration": "PT1M4S", (Example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "end": "2018-06-12T14:01:41Z",
    "start": "2018-06-12T14:00:37Z"
  },
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

User

Endpoints for manipulating USER resource

Get currently logged in user's info

GET /user

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "activeWorkspace": "592e9e48b0798735d03919ee",
  "defaultWorkspace": "592e9e48b0798735d03919ee",
  "email": "email@test.com",
  "id": "5bfd36c4b0798777049512e2",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "500",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "WORKSPACE",
      "targetId": "5bfd36c4b0798777049512e3",
      "userId": "5bfd36c4b0798777049512e2"
    }
  ],
  "name": "Username",
  "profilePicture": "https://s3.eu-central-1.amazonaws.com/clockify/no-user-image.png",
  "settings": {
    "collapseAllProjectLists": "false",
    "dashboardPinToTop": "false",
    "dashboardSelection": "ME",
    "dashboardViewType": "BILLABILITY",
    "dateFormat": "MM/DD/YYYY",
    "isCompactViewOn": "false",
    "longRunning": "false",
    "projectListCollapse":  null,
    "sendNewsletter": "false",
    "summaryReportSettings": {
      "group": "Project", (Group: Project, Client, User, Tag, Time Entry, Task)
      "subgroup": "Time Entry" (Subgroup: Project, Client, User, Tag)
    },
    "timeFormat": "HOUR12",
    "timeTrackingManual": "false",
    "timeZone": "Europe/Belgrade",
    "weekStart": "MONDAY",
    "weeklyUpdates": "false"
  },
  "status": "ACTIVE"
}

Find all users on workspace

GET /workspaces/{workspaceId}/users
200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "activeWorkspace": "592e9e48b0798735d03919ee",
    "defaultWorkspace": "592e9e48b0798735d03919ee",
    "email": "email@test.com",
    "id": "5bfd36c4b0798777049512e2",
    "memberships": [
      {
        "hourlyRate": {
          "amount": "500",
          "currency": "USD"
        },
        "membershipStatus": "ACTIVE",
        "membershipType": "WORKSPACE",
        "targetId": "5bfd36c4b0798777049512e3",
        "userId": "5bfd36c4b0798777049512e2"
      }
    ],
    "name": "Username",
    "profilePicture": "https://s3.eu-central-1.amazonaws.com/clockify/no-user-image.png",
    "settings": {
      "collapseAllProjectLists": "false",
      "dashboardPinToTop": "false",
      "dashboardSelection": "ME",
      "dashboardViewType": "BILLABILITY",
      "dateFormat": "MM/DD/YYYY",
      "isCompactViewOn": "false",
      "longRunning": "false",
      "projectListCollapse":  null,
      "sendNewsletter": "false",
      "summaryReportSettings": {
        "group": "Project", (Group: Project, Client, User, Tag, Time Entry, Task)
        "subgroup": "Time Entry" (Subgroup: Project, Client, User, Tag)
      },
      "timeFormat": "HOUR12",
      "timeTrackingManual": "false",
      "timeZone": "Europe/Belgrade",
      "weekStart": "MONDAY",
      "weeklyUpdates": "false"
    },
    "status": "ACTIVE"
  }
]

Workspace

Endpoints for manipulating WORKSPACE resource

Find workspaces for currently logged in user

GET /workspaces
200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "hourlyRate": {
      "amount": "0",
      "currency": "USD"
    },
    "id": "5g3g57bt0cb2548e22e6l9cd",
    "imageUrl": "https://s3.eu-central-1.amazonaws.com/test/workspaceImg.png",
    "memberships": [
      {
        "hourlyRate": {
          "amount": "15",
          "currency": "USD"
        },
        "membershipStatus": "ACTIVE",
        "membershipType": "WORKSPACE",
        "targetId": "5g3g57bt0cb2548e22e6l9cd",
        "userId": "6h1e49bf0cb8790e43d6c9ab"
      }
    ],
    "name": "Clockify workspace",
    "workspaceSettings": {
      "adminOnlyPages": [],
      "automaticLock": {
        "changeDay": "WEDNESDAY",
        "dayOfMonth": "13",
        "firstDay": "MONDAY",
        "olderThanPeriod": "DAYS",
        "olderThanValue": "14",
        "type": "OLDER_THAN"
      },
      "canSeeTimeSheet": "false",
      "defaultBillableProjects": "true",
      "forceDescription": "true",
      "forceProjects": "true",
      "forceTags": "false",
      "forceTasks": "false",
      "lockTimeEntries": "2019-01-31T23:00:00Z",
      "onlyAdminsCreateProject": "false",
      "onlyAdminsCreateTag": "false",
      "onlyAdminsSeeAllTimeEntries": "true",
      "onlyAdminsSeeBillableRates": "false",
      "onlyAdminsSeeDashboard": "false",
      "onlyAdminsSeePublicProjectsEntries": "false",
      "projectFavorites": "true",
      "projectGroupingLabel": "client",
      "projectPickerSpecialFilter": "false",
      "round": {
        "minutes": "15",
        "round": "Round up to"
      },
      "timeRoundingInReports": "true",
      "trackTimeDownToSecond": "false"
    }
]

Add a new workspace

POST /workspaces

Contains new workspace name.

Request Content-Types: application/json
Request Example
{
  "name": "Development"
}
201 Created

Created

400 Bad Request

Workspace with that name already exists, or workspace name is not valid

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (201 Created)
{
  "hourlyRate": {
    "amount": "0",
    "currency": "USD"
  },
  "id": "5g3g57bt0cb2548e22e6l9cd",
  "imageUrl": "https://s3.eu-central-1.amazonaws.com/test/workspaceImg.png",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "WORKSPACE",
      "targetId": "5g3g57bt0cb2548e22e6l9cd",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
    }
  ],
  "name": "Clockify workspace",
  "workspaceSettings": {
    "adminOnlyPages": [],
    "automaticLock": {
      "changeDay": "WEDNESDAY",
      "dayOfMonth": "13",
      "firstDay": "MONDAY",
      "olderThanPeriod": "DAYS",
      "olderThanValue": "14",
      "type": "OLDER_THAN"
    },
    "canSeeTimeSheet": "false",
    "defaultBillableProjects": "true",
    "forceDescription": "true",
    "forceProjects": "true",
    "forceTags": "false",
    "forceTasks": "false",
    "lockTimeEntries": "2019-01-31T23:00:00Z",
    "onlyAdminsCreateProject": "false",
    "onlyAdminsCreateTag": "false",
    "onlyAdminsSeeAllTimeEntries": "true",
    "onlyAdminsSeeBillableRates": "false",
    "onlyAdminsSeeDashboard": "false",
    "onlyAdminsSeePublicProjectsEntries": "false",
    "projectFavorites": "true",
    "projectGroupingLabel": "client",
    "projectPickerSpecialFilter": "false",
    "round": {
      "minutes": "15",
      "round": "Round up to"
    },
    "timeRoundingInReports": "true",
    "trackTimeDownToSecond": "false"
  }
}



Schema Definitions

AutomaticLockDto: object

changeDay: string MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
dayOfMonth: integer
firstDay: string MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
olderThanPeriod: string DAYS, WEEKS, MONTHS
olderThanValue: integer
type: string WEEKLY, MONTHLY, OLDER_THAN
Example
{
  "changeDay": "string",
  "dayOfMonth": "integer",
  "firstDay": "string",
  "olderThanPeriod": "string",
  "olderThanValue": "integer",
  "type": "string"
}

ClientDto: object

id: string
name: string
workspaceId: string
Example
{
  "id": "string",
  "name": "string",
  "workspaceId": "string"
}

ClientRequest: object

name: string
Example
{
  "name": "string"
}

CurrentUserDto: object

activeWorkspace: string
defaultWorkspace: string
email: string
id: string
memberships: MembershipDto
MembershipDto
name: string
profilePicture: string
settings: UserSettingsDto
status: string ACTIVE, PENDING_EMAIL_VERIFICATION, DELETED
Example
{
  "activeWorkspace": "string",
  "defaultWorkspace": "string",
  "email": "string",
  "id": "string",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "integer",
        "currency": "string"
      },
      "membershipStatus": "string",
      "membershipType": "string",
      "targetId": "string",
      "userId": "string"
    }
  ],
  "name": "string",
  "profilePicture": "string",
  "settings": {
    "collapseAllProjectLists": "boolean",
    "dashboardPinToTop": "boolean",
    "dashboardSelection": "string",
    "dashboardViewType": "string",
    "dateFormat": "string",
    "isCompactViewOn": "boolean",
    "longRunning": "boolean",
    "projectListCollapse": "integer",
    "sendNewsletter": "boolean",
    "summaryReportSettings": {
      "group": "string",
      "subgroup": "string"
    },
    "timeFormat": "string",
    "timeTrackingManual": "boolean",
    "timeZone": "string",
    "weekStart": "string",
    "weeklyUpdates": "boolean"
  },
  "status": "string"
}

EstimateDto: object

estimate: string
type: string AUTO, MANUAL
Example
{
  "estimate": "string",
  "type": "string"
}

EstimateRequest: object

estimate: integer
type: string
Example
{
  "estimate": "integer",
  "type": "string"
}

HourlyRateDto: object

amount: integer
currency: string
Example
{
  "amount": "integer",
  "currency": "string"
}

HourlyRateRequest: object

amount: integer
currency: string
Example
{
  "amount": "integer",
  "currency": "string"
}

MembershipDto: object

hourlyRate: HourlyRateDto
membershipStatus: string PENDING, ACTIVE, DECLINED, INACTIVE
membershipType: string
targetId: string
userId: string
Example
{
  "hourlyRate": {
    "amount": "integer",
    "currency": "string"
  },
  "membershipStatus": "string",
  "membershipType": "string",
  "targetId": "string",
  "userId": "string"
}

MembershipRequest: object

userId: string
hourlyRate: HourlyRateRequest
targetId: string
membershipType: string
membershipStatus: string
Example
{
  "userId": "string",
  "hourlyRate": {
    "amount": "integer",
    "currency": "string"
  },
  "targetId": "string",
  "membershipType": "string",
  "membershipStatus": "string"
}

ProjectDtoImpl: object

archived: boolean
billable: boolean
clientId: string
clientName: string
color: string
duration: string
estimate: EstimateDto
hourlyRate: HourlyRateDto
id: string
memberships: MembershipDto
MembershipDto
name: string
public: boolean
workspaceId: string
Example
{
  "archived": "boolean",
  "billable": "boolean",
  "clientId": "string",
  "clientName": "string",
  "color": "string",
  "duration": "string",
  "estimate": {
    "estimate": "string",
    "type": "string"
  },
  "hourlyRate": {
    "amount": "integer",
    "currency": "string"
  },
  "id": "string",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "integer",
        "currency": "string"
      },
      "membershipStatus": "string",
      "membershipType": "string",
      "targetId": "string",
      "userId": "string"
    }
  ],
  "name": "string",
  "public": "boolean",
  "workspaceId": "string"
}

ProjectId: object

id: string
Example
{
  "id": "string"
}

ProjectRequest: object

name: string
clientId: string
isPublic: boolean
estimate: EstimateRequest
color: string
billable: boolean
hourlyRate: HourlyRateRequest
memberships: MembershipRequest
MembershipRequest
tasks: TaskRequest
TaskRequest
Example
{
  "name": "string",
  "clientId": "string",
  "isPublic": "boolean",
  "estimate": {
    "estimate": "integer",
    "type": "string"
  },
  "color": "string",
  "billable": "boolean",
  "hourlyRate": {
    "amount": "integer",
    "currency": "string"
  },
  "memberships": [
    {
      "userId": "string",
      "hourlyRate": {
        "amount": "integer",
        "currency": "string"
      },
      "targetId": "string",
      "membershipType": "string",
      "membershipStatus": "string"
    }
  ],
  "tasks": [
    {
      "id": "string",
      "name": "string",
      "assigneeIds": ["string"],
      "estimate": "string",
      "status": "string"
    }
  ]
}

ProjectSummaryDto: object

color: string
id: string
name: string
Example
{
  "color": "string",
  "id": "string",
  "name": "string"
}

ProjectTaskTupleDto: object

projectId: string
taskId: string
Example
{
    "projectId": "string",
    "taskId": "string"
  }
  

ProjectTaskTupleRequest: object

projectId: string
taskId: string
Example
{
    "projectId": "string",
    "taskId": "string"
  }
  

Round: object

minutes: string
round: string
Example
{
  "minutes": "string",
  "round": "string"
}

StopTimeEntryRequest: object

end: string
Example
{
  "end": "string"
}

SummaryReportSettingsDto: object

group: string
subgroup: string
Example
{
  "group": "string",
  "subgroup": "string"
}

TagDto: object

id: string
name: string
workspaceId: string
Example
{
  "id": "string",
  "name": "string",
  "workspaceId": "string"
}

TagId: object

id: string
Example
{
  "id": "string"
}

TagRequest: object

name: string
Example
{
  "name": "string"
}

TaskDto: object

assigneeIds: object
estimate: string
id: string
name: string
projectId: string
status: string ACTIVE, DONE
Example
{
  "assigneeIds": ["string"],
  "estimate": "string",
  "id": "string",
  "name": "string",
  "projectId": "string",
  "status": "string"
}

TaskId: object

id: string
Example
{
  "id": "string"
}

TaskRequest: object

id: string
projectId: string
name: string
assigneeIds: object
estimate: string
status: string
Example
{
  "id": "string",
  "projectId": "string",
  "name": "string",
  "assigneeIds": ["string"],
  "estimate": "string",
  "status": "string"
}

TemplateDto: object

id: string
name: string
projectsAndTasks: ProjectTaskTupleDto
ProjectTaskTupleDto
userId: string
workspaceId: string
Example
{
    "id": "string",
    "name": "string",
    "projectsAndTasks": [
      {
        "projectId": "string",
        "taskId": "string"
      }
    ],
    "userId": "string",
    "workspaceId": "string"
  }
  

TemplatePatchRequest: object

name: string
Example
{
    "name": "string"
  }
  

TemplateRequest: object

name: string
projectsAndTasks: ProjectTaskTupleRequest
ProjectTaskTupleRequest
Example
{
    "name": "string",
    "projectsAndTasks": [
      {
        "projectId": "string",
        "taskId": "string"
      }
    ]
  }
  

TimeEntriesDurationRequest: object

start: string
end: string
Example
{
  "start": "string",
  "end": "string"
}

TimeEntry: object

billable: boolean
isLocked: boolean
projectId: ProjectId
tagIds: TagId
TagId
taskId: TaskId
timeInterval: TimeInterval
Example
{
  "billable": "boolean",
  "isLocked": "boolean",
  "projectId": {
    "id": "string"
  },
  "tagIds": [
    {
      "id": "string"
    }
  ],
  "taskId": {
    "id": "string"
  },
  "timeInterval": "object"
}

TimeEntryBulkEditRequest: object

timeEntries: TimeEntryRequest
TimeEntryRequest
timeEntryIds: string[]
string
timeEntryList: TimeEntry
TimeEntry
changeFields: string[]
string
Example
{
  "timeEntries": [
    {
      "id": "string",
      "start": "string",
      "billable": "boolean",
      "description": "string",
      "projectId": "string",
      "userId": "string",
      "taskId": "string",
      "end": "string",
      "tagIds": [
        "string"
      ],
      "timeInterval": {
        "start": "string",
        "end": "string"
      },
      "workspaceId": "string",
      "isLocked": "boolean"
    }
  ],
  "timeEntryIds": [
    "string"
  ],
  "timeEntryList": [
    {
      "billable": "boolean",
      "isLocked": "boolean",
      "projectId": {
        "id": "string"
      },
      "tagIds": [
        {
          "id": "string"
        }
      ],
      "taskId": {
        "id": "string"
      },
      "timeInterval": "object"
    }
  ],
  "changeFields": [
    "string"
  ]
}

TimeEntryDtoImpl: object

billable: boolean
description: string
id: string
isLocked: boolean
projectId: string
tagIds: string[]
string
taskId: string
timeInterval: TimeIntervalDto
userId: string
workspaceId: string
Example
{
  "billable": "boolean",
  "description": "string",
  "id": "string",
  "isLocked": "boolean",
  "projectId": "string",
  "tagIds": [
    "string"
  ],
  "taskId": "string",
  "timeInterval": {
    "duration": "string",
    "end": "string (date-time)",
    "start": "string (date-time)"
  },
  "userId": "string",
  "workspaceId": "string"
}

TimeEntryIdsRequest: object

timeEntryIds: string[]
string
Example
{
  "timeEntryIds": [
    "string"
  ]
}

TimeEntryRequest: object

id: string
start: string
billable: boolean
description: string
projectId: string
userId: string
taskId: string
end: string
tagIds: string[]
string
timeInterval: TimeEntriesDurationRequest
workspaceId: string
isLocked: boolean
Example
{
  "id": "string",
  "start": "string",
  "billable": "boolean",
  "description": "string",
  "projectId": "string",
  "userId": "string",
  "taskId": "string",
  "end": "string",
  "tagIds": [
    "string"
  ],
  "timeInterval": {
    "start": "string",
    "end": "string"
  },
  "workspaceId": "string",
  "isLocked": "boolean"
}

TimeEntrySummaryDto: object

billable: boolean
clientId: string
clientName: string
description: string
hourlyRate: HourlyRateDto
id: string
isLocked: boolean
project: ProjectSummaryDto
tags: TagDto
TagDto
task: TaskDto
timeInterval: TimeIntervalDto
totalBillable: integer (int64)
user: UserSummaryDto
Example
{
  "billable": "boolean",
  "clientId": "string",
  "clientName": "string",
  "description": "string",
  "hourlyRate": {
    "amount": "integer",
    "currency": "string"
  },
  "id": "string",
  "isLocked": "boolean",
  "project": {
    "color": "string",
    "id": "string",
    "name": "string"
  },
  "tags": [
    {
      "id": "string",
      "name": "string",
      "workspaceId": "string"
    }
  ],
  "task": {
    "assigneeIds": ["string"],
    "estimate": "string",
    "id": "string",
    "name": "string",
    "projectId": "string",
    "status": "string"
  },
  "timeInterval": {
    "duration": "string",
    "end": "string (date-time)",
    "start": "string (date-time)"
  },
  "totalBillable": "integer (int64)",
  "user": {
    "email": "string",
    "id": "string",
    "name": "string"
  }
}

TimeInterval: object

Example
"object"

TimeIntervalDto: object

duration: string
end: string (date-time)
start: string (date-time)
Example
{
  "duration": "string",
  "end": "string (date-time)",
  "start": "string (date-time)"
}

UpdateTimeEntryRequest: object

start: string
billable: boolean
description: string
projectId: string
taskId: string
end: string
tagIds: string[]
string
Example
{
  "start": "string",
  "billable": "boolean",
  "description": "string",
  "projectId": "string",
  "taskId": "string",
  "end": "string",
  "tagIds": [
    "string"
  ]
}

UserDto: object

activeWorkspace: string
defaultWorkspace: string
email: string
id: string
memberships: MembershipDto
MembershipDto
name: string
profilePicture: string
settings: UserSettingsDto
status: string ACTIVE, PENDING_EMAIL_VERIFICATION, DELETED
Example
{
  "activeWorkspace": "string",
  "defaultWorkspace": "string",
  "email": "string",
  "id": "string",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "integer",
        "currency": "string"
      },
      "membershipStatus": "string",
      "membershipType": "string",
      "targetId": "string",
      "userId": "string"
    }
  ],
  "name": "string",
  "profilePicture": "string",
  "settings": {
    "collapseAllProjectLists": "boolean",
    "dashboardPinToTop": "boolean",
    "dashboardSelection": "string",
    "dashboardViewType": "string",
    "dateFormat": "string",
    "isCompactViewOn": "boolean",
    "longRunning": "boolean",
    "projectListCollapse": "integer",
    "sendNewsletter": "boolean",
    "summaryReportSettings": {
      "group": "string",
      "subgroup": "string"
    },
    "timeFormat": "string",
    "timeTrackingManual": "boolean",
    "timeZone": "string",
    "weekStart": "string",
    "weeklyUpdates": "boolean"
  },
  "status": "string"
}

UserSettingsDto: object

collapseAllProjectLists: boolean
dashboardPinToTop: boolean
dashboardSelection: string ME, TEAM
dashboardViewType: string PROJECT, BILLABILITY
dateFormat: string
isCompactViewOn: boolean
longRunning: boolean
projectListCollapse: integer
sendNewsletter: boolean
summaryReportSettings: SummaryReportSettingsDto
timeFormat: string
timeTrackingManual: boolean
timeZone: string
weekStart: string MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
weeklyUpdates: boolean
Example
{
  "collapseAllProjectLists": "boolean",
  "dashboardPinToTop": "boolean",
  "dashboardSelection": "string",
  "dashboardViewType": "string",
  "dateFormat": "string",
  "isCompactViewOn": "boolean",
  "longRunning": "boolean",
  "projectListCollapse": "integer",
  "sendNewsletter": "boolean",
  "summaryReportSettings": {
    "group": "string",
    "subgroup": "string"
  },
  "timeFormat": "string",
  "timeTrackingManual": "boolean",
  "timeZone": "string",
  "weekStart": "string",
  "weeklyUpdates": "boolean"
}

UserSummaryDto: object

email: string
id: string
name: string
Example
{
  "email": "string",
  "id": "string",
  "name": "string"
}

WorkspaceDto: object

hourlyRate: HourlyRateDto
id: string
imageUrl: string
memberships: MembershipDto
MembershipDto
name: string
workspaceSettings: WorkspaceSettingsDto
Example
{
  "hourlyRate": {
    "amount": "integer",
    "currency": "string"
  },
  "id": "string",
  "imageUrl": "string",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "integer",
        "currency": "string"
      },
      "membershipStatus": "string",
      "membershipType": "string",
      "targetId": "string",
      "userId": "string"
    }
  ],
  "name": "string",
  "workspaceSettings": {
    "adminOnlyPages": [
      "string"
    ],
    "automaticLock": {
      "changeDay": "string",
      "dayOfMonth": "integer",
      "firstDay": "string",
      "olderThanPeriod": "string",
      "olderThanValue": "integer",
      "type": "string"
    },
    "canSeeTimeSheet": "boolean",
    "defaultBillableProjects": "boolean",
    "forceDescription": "boolean",
    "forceProjects": "boolean",
    "forceTags": "boolean",
    "forceTasks": "boolean",
    "lockTimeEntries": "string",
    "onlyAdminsCreateProject": "boolean",
    "onlyAdminsCreateTag": "boolean",
    "onlyAdminsSeeAllTimeEntries": "boolean",
    "onlyAdminsSeeBillableRates": "boolean",
    "onlyAdminsSeeDashboard": "boolean",
    "onlyAdminsSeePublicProjectsEntries": "boolean",
    "projectFavorites": "boolean",
    "projectGroupingLabel": "string",
    "projectPickerSpecialFilter": "boolean",
    "round": {
      "minutes": "string",
      "round": "string"
    },
    "timeRoundingInReports": "boolean",
    "trackTimeDownToSecond": "boolean"
  }
}

WorkspaceRequest: object

name: string
Example
{
  "name": "string"
}

WorkspaceSettingsDto: object

adminOnlyPages: string[]
string PROJECT, TEAM, REPORTS
automaticLock: AutomaticLockDto
canSeeTimeSheet: boolean
defaultBillableProjects: boolean
forceDescription: boolean
forceProjects: boolean
forceTags: boolean
forceTasks: boolean
lockTimeEntries: string
onlyAdminsCreateProject: boolean
onlyAdminsCreateTag: boolean
onlyAdminsSeeAllTimeEntries: boolean
onlyAdminsSeeBillableRates: boolean
onlyAdminsSeeDashboard: boolean
onlyAdminsSeePublicProjectsEntries: boolean
projectFavorites: boolean
projectGroupingLabel: string
projectPickerSpecialFilter: boolean
round: Round
timeRoundingInReports: boolean
trackTimeDownToSecond: boolean
Example
{
  "adminOnlyPages": [
    "string"
  ],
  "automaticLock": {
    "changeDay": "string",
    "dayOfMonth": "integer",
    "firstDay": "string",
    "olderThanPeriod": "string",
    "olderThanValue": "integer",
    "type": "string"
  },
  "canSeeTimeSheet": "boolean",
  "defaultBillableProjects": "boolean",
  "forceDescription": "boolean",
  "forceProjects": "boolean",
  "forceTags": "boolean",
  "forceTasks": "boolean",
  "lockTimeEntries": "string",
  "onlyAdminsCreateProject": "boolean",
  "onlyAdminsCreateTag": "boolean",
  "onlyAdminsSeeAllTimeEntries": "boolean",
  "onlyAdminsSeeBillableRates": "boolean",
  "onlyAdminsSeeDashboard": "boolean",
  "onlyAdminsSeePublicProjectsEntries": "boolean",
  "projectFavorites": "boolean",
  "projectGroupingLabel": "string",
  "projectPickerSpecialFilter": "boolean",
  "round": {
    "minutes": "string",
    "round": "string"
  },
  "timeRoundingInReports": "boolean",
  "trackTimeDownToSecond": "boolean"
}