API (Deprecated)

This documentation is work in progress and is prone to breaking changes. We recommend using the stable API (v1). Stable end points are guaranteed to not change in incompatible ways, so you can be sure that the basic interface as documented by the spec will continue to work as described.

API Endpoint
https://api.clockify.me/api/
Terms of Service: https://clockify.me/terms
Schemes: https
Version: Deprecated

Authentication

All requests need to be authenticated with API key, which you can find in your Personal 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/workspaces/{workspaceId}/timeEntries/

Time Zones

Clockify uses three time zones to record and display time values:

  • Your computer’s system time zone (when you record time)
  • UTC (stored in the database)
  • Time zone in User Settings (when displaying recorded time)

When you record time in Clockify (eg. when you start a timer), your system time is used. Then, Clockify converts that time to UTC and sends the converted value to the server. When you later view the time in reports, the time zone from your User Settings is used.

Any time entries you make in Clockify are recorded against your computer’s system time zone, regardless of the time zone, you have set in Clockify’s User Settings. Time zone in User Settings is applied only displaying already recorded time (like in reports and timesheet).

Example

Jörg from Germany works from 09-10 AM (UTC+2) and records that time in Clockify. Clockify converts it to 07-09 AM (its corresponding UTC value) and stores it in the database. When Emily from New York runs the report, she sees that Jörg worked from 03-04 AM (displayed in her UTC-4 time).

This assumes the system time zone and the time zone in User Settings match. If they don’t match, you will get a notification to fix it. If you don’t fix it, your timesheet and reports will show different start and end time from the one you recorded

Client

Client endpoint for CRUD operations.

Find all clients of workspace

GET /workspaces/{workspaceId}/clients
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

request

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

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

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

Find client by ID

GET /workspaces/{workspaceId}/clients/{clientId}
200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

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

Delete client by ID

DELETE /workspaces/{workspaceId}/clients/{clientId}
200 OK

OK

204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

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

Update client of workspace

PUT /workspaces/{workspaceId}/clients/{id}

request

Request Content-Types: application/json
Request Example
{
  "name": "Client updated"
}
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

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

Project

Operations about project

Get all non-archived projects

GET /workspaces/{workspaceId}/projects/

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": "PT1H30M", (Duration 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": [
      {
        "assigneeId": "",
        "estimate": "PT0S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
        "id": "5b1e6b160cb8793dd93ec120",
        "name": "Task 1",
        "projectId": "5b1667790cb8797321f3d664",
        "status": "ACTIVE" (Status: ACTIVE, DONE)
      }
    ],
    "workspaceId": "5b152d9b0cb8797f86cbe14f"
  }
]

Add new project

POST /workspaces/{workspaceId}/projects/
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

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (201 Created)
{
  "archived": "false",
  "billable": "true",
  "clientId": "",
  "color": "#f44336",
  "estimate": {
    "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "type": "AUTO" (Type: AUTO, MANUAL)
  },
  "hourlyRate": "null",
  "id": "5b1e6b160cb8793dd93ec120",
  "memberships": [
    {
      "hourlyRate": "null",
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "target": "5b1e6b160cb8793dd93ec120",
      "userId": "5a9e9a39b079874a74cfa980"
    }
  ],
  "name": "Clockify 2",
  "public": "false",
  "workspaceId": "5b152d9b0cb8797f86cbe14f"
}

Get list of projects by project IDs

POST /workspaces/{workspaceId}/projects/ids

projectIds: string[]

string[]
Request Content-Types: application/json
Request Example
{
  "ids": ["string"]
}

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "archived": "false",
    "billable": "true",
    "clientId": "",
    "color": "#f44336",
    "estimate": {
      "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
      "type": "AUTO" (Type: AUTO, MANUAL)
    },
    "hourlyRate": {
      "amount": "15",
      "currency": "USD"
    },
    "id": "5b1667790cb8797321f3d664",
    "memberships": [
      {
        "hourlyRate": {
          "amount": "15",
          "currency": "USD"
        },
        "membershipStatus": "ACTIVE",
        "membershipType": "PROJECT",
        "target": "5b1667790cb8797321f3d664",
        "userId": "5a9e9a39b079874a74cfa980"
      }
    ],
    "name": "Clockify 2",
    "public": "false",
    "workspaceId": "5b152d9b0cb8797f86cbe14f"
  }
]

Find project by ID

GET /workspaces/{workspaceId}/projects/{projectId}

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
    "archived": "false",
    "billable": "true",
    "clientId": "",
    "color": "#f44336",
    "estimate": {
      "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
      "type": "AUTO" (Type: AUTO, MANUAL)
    },
    "hourlyRate": {
      "amount": "15",
      "currency": "USD"
    },
    "id": "5b1667790cb8797321f3d664",
    "memberships": [
      {
        "hourlyRate": {
          "amount": "15",
          "currency": "USD"
        },
        "membershipStatus": "ACTIVE",
        "membershipType": "PROJECT",
        "target": "5b1667790cb8797321f3d664",
        "userId": "5a9e9a39b079874a74cfa980"
      }
    ],
    "name": "Clockify 2",
    "public": "false",
    "workspaceId": "5b152d9b0cb8797f86cbe14f"
  }

Update project

PUT /workspaces/{workspaceId}/projects/{projectId}
Request Content-Types: application/json
Request Example
{
  "name": "Clockify updated",
  "hourlyRate": {
    "amount": "20",
    "currency": "USD"
  },
  "clientId": "",
  "billable": "true",
  "isPublic": "false",
  "estimate": {
    "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "type": "AUTO" (Type: AUTO, MANUAL)
  },
  "color": "#f44336"
}

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
    "archived": "false",
    "billable": "true",
    "clientId": "",
    "color": "#f44336",
    "estimate": {
      "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
      "type": "AUTO" (Type: AUTO, MANUAL)
    },
    "hourlyRate": {
      "amount": "20",
      "currency": "USD"
    },
    "id": "5b1667790cb8797321f3d664",
    "memberships": [
      {
        "hourlyRate": {
          "amount": "15",
          "currency": "USD"
        },
        "membershipStatus": "ACTIVE",
        "membershipType": "PROJECT",
        "target": "5b1667790cb8797321f3d664",
        "userId": "5a9e9a39b079874a74cfa980"
      }
    ],
    "name": "Clockify updated",
    "public": "false",
    "workspaceId": "5b152d9b0cb8797f86cbe14f"
  }
  

Delete project by ID

DELETE /workspaces/{workspaceId}/projects/{projectId}

OK

204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Response Content-Types: */*
Response Example (200 OK)
{
    "archived": "false",
    "billable": "true",
    "clientId": "",
    "color": "#f44336",
    "estimate": {
      "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
      "type": "AUTO" (Type: AUTO, MANUAL)
    },
    "hourlyRate": {
      "amount": "15",
      "currency": "USD"
    },
    "id": "5b1667790cb8797321f3d664",
    "memberships": [
      {
        "hourlyRate": {
          "amount": "15",
          "currency": "USD"
        },
        "membershipStatus": "ACTIVE",
        "membershipType": "PROJECT",
        "target": "5b1667790cb8797321f3d664",
        "userId": "5a9e9a39b079874a74cfa980"
      }
    ],
    "name": "Clockify 2",
    "public": "false",
    "workspaceId": "5b152d9b0cb8797f86cbe14f"
  }
  

Archive project

GET /workspaces/{workspaceId}/projects/{projectId}/archive

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "archived": "true",
  "billable": "true",
  "clientId": "",
  "color": "#f44336",
  "estimate": {
    "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "type": "AUTO" (Type: AUTO, MANUAL)
  },
  "hourlyRate": {
    "amount": "15",
    "currency": "USD"
  },
  "id": "5b1667790cb8797321f3d664",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "target": "5b1667790cb8797321f3d664",
      "userId": "5a9e9a39b079874a74cfa980"
    }
  ],
  "name": "Clockify 2",
  "public": "false",
  "workspaceId": "5b152d9b0cb8797f86cbe14f"
}

Restore archived project

GET /workspaces/{workspaceId}/projects/{projectId}/restore

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "archived": "false",
  "billable": "true",
  "clientId": "",
  "color": "#f44336",
  "estimate": {
    "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "type": "AUTO" (Type: AUTO, MANUAL)
  },
  "hourlyRate": {
    "amount": "15",
    "currency": "USD"
  },
  "id": "5b1667790cb8797321f3d664",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "target": "5b1667790cb8797321f3d664",
      "userId": "5a9e9a39b079874a74cfa980"
    }
  ],
  "name": "Clockify 2",
  "public": "false",
  "workspaceId": "5b152d9b0cb8797f86cbe14f"
}

Add users on project

POST /workspaces/{workspaceId}/projects/{projectId}/team
Request Content-Types: application/json
Request Example
{
  "userIds": [
    "6h1e49bf0cb8790e43d6c9ab" (An empty object is possible for either userIds or userGroupIds)
  ],
  "userGroupIds": [
  ]
}

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "archived": "false",
  "billable": "true",
  "clientId": "",
  "color": "#f44336",
  "estimate": {
    "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "type": "AUTO" (Type: AUTO, MANUAL)
  },
  "hourlyRate": {
    "amount": "15",
    "currency": "USD"
  },
  "id": "5b1667790cb8797321f3d664",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "target": "5b1667790cb8797321f3d664",
      "userId": "5a9e9a39b079874a74cfa980"
    },
    {
      "hourlyRate": {
        "amount": "30",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "target": "5b1667790cb8797321f3d664",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
    },
    {
      "hourlyRate": null,
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "target": "5b1667790cb8797321f3d664",
      "userId": "6g375388b079876a9beb34e8"
    }
  ],
  "name": "Clockify 2",
  "public": "false",
  "workspaceId": "5b152d9b0cb8797f86cbe14f"
}

Remove user group from project

DELETE /workspaces/{workspaceId}/projects/{projectId}/userGroups/{usergroupId}/membership

OK

204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Response Content-Types: */*
Response Example (200 OK)
{
  "archived": "false",
  "billable": "true",
  "clientId": "",
  "color": "#f44336",
  "estimate": {
    "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "type": "AUTO" (Type: AUTO, MANUAL)
  },
  "hourlyRate": {
    "amount": "15",
    "currency": "USD"
  },
  "id": "5b1667790cb8797321f3d664",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "target": "5b1667790cb8797321f3d664",
      "userId": "5a9e9a39b079874a74cfa980"
    },
    {
      "hourlyRate": {
        "amount": "30",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "target": "5b1667790cb8797321f3d664",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
    }
  ],
  "name": "Clockify 2",
  "public": "false",
  "workspaceId": "5b152d9b0cb8797f86cbe14f"
}

Find users on project

GET /workspaces/{workspaceId}/projects/{projectId}/users
200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "activeWorkspace": "5g3g57bt0cb2548e22e6l9cd",
    "defaultWorkspace": "5g3g57bt0cb2548e22e6l9cd",
    "email": "john.doe@clockify.me",
    "id": "6h1e49bf0cb8790e43d6c9ab",
    "memberships": [
      {
        "hourlyRate": {
          "amount": "15",
          "currency": "USD"
        },
        "membershipStatus": "ACTIVE",
        "membershipType": "WORKSPACE",
        "target": "5g3g57bt0cb2548e22e6l9cd",
        "userId": "6h1e49bf0cb8790e43d6c9ab"
      },
      {
        "hourlyRate": {
          "amount": "15",
          "currency": "USD"
        },
        "membershipStatus": "ACTIVE",
        "membershipType": "PROJECT",
        "target": "5b1667790cb8797321f3d664",
        "userId": "6h1e49bf0cb8790e43d6c9ab"
      }
    ],
    "name": "John Doe",
    "profilePicture": "https://s3.eu-central-1.amazonaws.com/test/profile.png",
    "settings": {
      "dateFormat": "MM/DD/YYYY",
      "isCompactViewOn": "false",
      "longRunning": "false",
      "sendNewsletter": "true",
      "summaryReportSettings": {
        "group": "Project",
        "subgroup": "Time Entry"
      },
      "timeFormat": "HOUR12",
      "timeTrackingManual": "true",
      "timeZone": "Europe/Berlin",
      "weekStart": "MONDAY",
      "weeklyUpdates": "false"
    },
    "status": "ACTIVE"
  }
]

Remove user from project

DELETE /workspaces/{workspaceId}/projects/{projectId}/users/{userId}/membership

OK

204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Response Content-Types: */*
Response Example (200 OK)
{
  "archived": "false",
  "billable": "true",
  "clientId": "",
  "color": "#f44336",
  "estimate": {
    "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "type": "AUTO" (Type: AUTO, MANUAL)
  },
  "hourlyRate": {
    "amount": "15",
    "currency": "USD"
  },
  "id": "5b1667790cb8797321f3d664",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "target": "5b1667790cb8797321f3d664",
      "userId": "5a9e9a39b079874a74cfa980"
    },
    {
      "hourlyRate": null,
      "membershipStatus": "ACTIVE",
      "membershipType": "PROJECT",
      "target": "5b1667790cb8797321f3d664",
      "userId": "6g375388b079876a9beb34e8"
    }
  ],
  "name": "Clockify 2",
  "public": "false",
  "workspaceId": "5b152d9b0cb8797f86cbe14f"
}

Saved reports

Operations about report

Find saved report by ID

GET /reports/{reportId}
end
in query
string

end

start
in query
string

start

zoomLevel
in query
string

zoomLevel

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "clients": [
    {
      "id": "5b1e52ff0cb8792ed75992c1",
      "name": "Client 1",
      "workspaceId": "5c0fe3290cl84304845dbf1f"
    }
  ],
  "endDate": "2018-06-05T07:57:05.976Z",
  "group": "PROJECT",
  "projects": [
    {
      "archived": "false",
      "billable": "true",
      "client": {
        "id": "5b1e52ff0cb8792ed75992c1",
      "name": "Client 1",
      "workspaceId": "5c0fe3290cl84304845dbf1f"
      },
      "clientId": "5b1e52ff0cb8792ed75992c1",
      "color": "#ff9800",
      "estimate": {
        "estimate": "PT1H30M15S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
        "type": "AUTO" (Type: AUTO, MANUAL)
      },
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "id": "5b1667790cb8797321f3d664",
      "memberships": [
        {
          "hourlyRate": {
            "amount": "30",
            "currency": "USD"
          },
          "membershipStatus": "ACTIVE",
          "membershipType": "PROJECT",
          "target": "5b1667790cb8797321f3d664",
          "userId": "6h1e49bf0cb8790e43d6c9ab"
        }
      ],
      "name": "Clockify 2",
      "public": "false",
      "tasks": [
        {
          "assigneeId": "",
          "estimate": "PT0S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
          "id": "5b1e6b160cb8793dd93ec120",
          "name": "Task 1",
          "projectId": "5b1667790cb8797321f3d664",
          "status": "ACTIVE" (Status: ACTIVE, DONE)
        }
      ],
      "workspaceId": "5b152d9b0cb8797f86cbe14f"
    }
  ],
  "reportType": "SUMMARY",
  "startDate": "2018-05-30T00:00:00Z",
  "subgroup": "TIME_ENTRY",
  "summaryReport": {
    "dateAndTotalBillableTime": {
      "2018-06-04": "PT0S" (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    },
    "dateAndTotalNotBillableTime": {
      "2018-05-31": "PT2H3M" (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    },
    "projectAndTotalTime": {
      "Clockify 2": "PT2H3M" (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
      "short": "PT0S" (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    },
    "totalTime": "PT2H3M", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "workspaceId": "5c0fe3290cl84304845dbf1f"
  },
  "users": [
    {
      "activeWorkspace": "5c0fe3290cl84304845dbf1f",
      "defaultWorkspace": "5c0fe3290cl84304845dbf1f",
      "email": "john.doe@clockify.me",
      "id": "6h1e49bf0cb8790e43d6c9ab",
      "memberships": [
        {
          "hourlyRate": {
            "amount": "15",
            "currency": "USD"
          },
          "membershipStatus": "ACTIVE",
          "membershipType": "WORKSPACE",
          "target": "5c0fe3290cl84304845dbf1f",
          "userId": "6h1e49bf0cb8790e43d6c9ab"
        }
      ],
      "name": "John Doe",
      "profilePicture": "https://s3.eu-central-1.amazonaws.com/test/profile.png",
      "settings": {
        "dateFormat": "MM/DD/YYYY",
        "isCompactViewOn": "false",
        "longRunning": "false",
        "sendNewsletter": "true",
        "summaryReportSettings": {
          "group": "Project",
          "subgroup": "Task"
        },
        "timeFormat": "HOUR12",
        "timeTrackingManual": "true",
        "timeZone": "Europe/Belgrade",
        "weekStart": "MONDAY",
        "weeklyUpdates": "false"
      },
      "status": "ACTIVE"
    }
  ]
}

Find all saved reports of workspace

GET /workspaces/{workspaceId}/reports/
200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "isPublic": "true",
    "link": "http://clockify2.me/bookmarks/5adf21ebb079874f347b5432",
    "reportId": "5adf21ebb079874f347b3567",
    "reportName": "Clockify 2 - saved report",
    "visibleToUserGroup": "null"
  }
]

Save report

POST /workspaces/{workspaceId}/reports/
Request Content-Types: application/json
Request Example
{
  "name": "Clockify 2 - saved report",
  "userIds": [],
  "clientIds": [],
  "projectIds": [],
  "taskIds": [],
  "tagIds": [],
  "description": "",
  "group": "PROJECT",
  "subgroup": "TIME_ENTRY",
  "start": "2018-05-30T08:44:31.265Z",
  "end": "2018-06-05T08:44:31.265Z",
  "billable": "BOTH", (Billable: true, false, BOTH)
  "zoomLevel": "week", (Zoom level: week, month, year)
  "type": "SUMMARY", (Type: SUMMARY, DETAILED, WEEKLY)
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "isPublic": "true",
  "visibleToUserGroup": "null",
  "archived": "Active", (Archived: Archived, Active, All)
  "roundingOn": "false"
}
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "name": "Clockify 2 - saved report",
  "userIds": [],
  "clientIds": [],
  "projectIds": [],
  "taskIds": [],
  "tagIds": [],
  "description": "",
  "group": "PROJECT",
  "subgroup": "TIME_ENTRY",
  "start": "2018-05-30T08:44:31.265Z",
  "end": "2018-06-05T08:44:31.265Z",
  "startDate": "2018-05-30T08:44:31.265Z",
  "endDate": "2018-06-05T08:44:31.265Z",
  "billable": "BOTH", (Billable: true, false, BOTH)
  "zoomLevel": "week", (Zoom level: week, month, year)
  "type": "SUMMARY", (Type: SUMMARY, DETAILED, WEEKLY)
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "isPublic": "true",
  "visibleToUserGroup": "null",
  "archived": "Active", (Archived: Archived, Active, All)
  "roundingOn": "false"
}

Update saved report

PUT /workspaces/{workspaceId}/reports/{reportId}
Request Content-Types: application/json
Request Example
{
  "name": "Clockify 2 - saved report update",
  "isPublic": "true",
  "visibleToUserGroup": "null"
}
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "name": "Clockify 2 - saved report update",
  "userIds": [],
  "clientIds": [],
  "projectIds": [],
  "taskIds": [],
  "tagIds": [],
  "description": "",
  "group": "PROJECT",
  "subgroup": "TIME_ENTRY",
  "start": "2018-05-30T08:44:31.265Z",
  "end": "2018-06-05T08:44:31.265Z",
  "startDate": "2018-05-30T08:44:31.265Z",
  "endDate": "2018-06-05T08:44:31.265Z",
  "billable": "BOTH", (Billable: true, false, BOTH)
  "zoomLevel": "week", (Zoom level: week, month, year)
  "type": "SUMMARY", (Type: SUMMARY, DETAILED, WEEKLY)
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "isPublic": "true",
  "visibleToUserGroup": "null",
  "archived": "Active", (Archived: Archived, Active, All)
  "roundingOn": "false" 
}

Remove saved report by ID

DELETE /workspaces/{workspaceId}/reports/{reportId}
200 OK

OK

204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Response Content-Types: */*
Response Example (200 OK)
{
  "name": "Clockify 2 - saved report",
  "userIds": [],
  "clientIds": [],
  "projectIds": [],
  "taskIds": [],
  "tagIds": [],
  "description": "",
  "group": "PROJECT",
  "subgroup": "TIME_ENTRY",
  "start": "2018-05-30T08:44:31.265Z",
  "end": "2018-06-05T08:44:31.265Z",
  "startDate": "2018-05-30T08:44:31.265Z",
  "endDate": "2018-06-05T08:44:31.265Z",
  "billable": "BOTH", (Billable: true, false, BOTH)
  "zoomLevel": "week", (Zoom level: week, month, year)
  "type": "SUMMARY", (Type: SUMMARY, DETAILED, WEEKLY)
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "isPublic": "true",
  "visibleToUserGroup": "null",
  "archived": "Active", (Archived: Archived, Active, All)
  "roundingOn": "false"
}

Summary report

Operations about summary report

Generate summary report for workspace

There are no endpoints for Detailed or Weekly report. Instead, you use the summary report and arrange the data as needed.

Endpoint returns time entries for the filters you've specified (eg. if you put 2017 for startTime and 2018 for endTime, you'll get all the entries as long as you don't use any other filters).

When the time entry is set as non-billable, the hourly rate is always zero. For entries marked as billable, the hourly rate you get depends on this schema:

  1. if project.userMemberhip.hourlyRate exists return project.userMemberhip.hourlyRate
  2. if project.hourlyRate exists return project.hourlyRate
  3. if workspace.userMembership.hourlyRate exists return workspace.userMembership.hourlyRate
  4. if workspace.hourlyRate exists return workspace.hourlyRate
POST /workspaces/{workspaceId}/reports/summary/
Request Content-Types: application/json
Request Example
{
  "startDate": "2018-01-01T00:00:00.000Z",
  "endDate": "2018-12-31T23:59:59.999Z",
  "me": "false", (Options: "false", "true", "TEAM", "ME", "null")
  "userGroupIds": [],
  "userIds": [],
  "projectIds": [],
  "clientIds": [],
  "taskIds": [],
  "tagIds": [],
  "billable": "BOTH", (Options: "BOTH", "BILLABLE", "NOT_BILLABLE")
  "includeTimeEntries": "true",
  "zoomLevel": "week", (Options: "week", "month", "year")
  "description": "",
  "archived": "Active", (Options: "Active", "All", "Archived")
  "roundingOn": "false"
}

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "dateAndTotalBillableTime": {},
  "dateAndTotalNotBillableTime": {
    "2018-08-06": "PT9H" (Duration example: PT1H30M15S - 1 hour 30 minutes
  },
  "projectAndTotalTime": {
     "592ee68fb0798737a6d52308": {
       "projectName": "My Project",
       "duration": "PT1M"
    }, 
     "345ee68fb0742737a6d52322": {
       "projectName": "My Other Project",
       "duration": "PT9H"
    }       
  },
  "totalTime": "PT9H",
  "workspaceId": "6ac4c3c8b07987197abf0ee5",
  "timeEntries": [
    {
      "id": "6b685ccbb079871db49b690d",
      "billable": false,
      "description": "",
      "project": {
        "id": "6ac4c84ab07987197abf0feb",
        "name": "ProjectX",
        "color": "#f44336"
      },
      "clientId": "6ac4d16db07987197abf11e4",
      "clientName": "Atlassian",
      "hourlyRate": {
        "amount": 0,
        "currency": "USD"
      },
      "timeInterval": {
        "start": "2018-08-06T07:00:00Z",
        "end": "2018-08-06T16:00:00Z",
        "duration": "PT9H"
      },
     "user": {
        "id": "692e9ebab0798735d03919f5",
        "name": "James White",
        "email": "james.white@atlassian.com"
      },
      "task": null,
      "tags": null,
      "totalBillable": 0,
      "isLocked": false
    }
  ]
}

Tag

Tag endpoint for CRUD operations

Tag

Find all tags on workspace

GET /workspaces/{workspaceId}/tags
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 new tag on workspace

POST /workspaces/{workspaceId}/tags

request

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

Created

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"
}
Tag

Find tag by ID

GET /workspaces/{workspaceId}/tags/{tagId}
200 OK

OK

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

Update tag of workspace

PUT /workspaces/{workspaceId}/tags/{tagId}

request

Request Content-Types: application/json
Request Example
{
  "name": "Tag updated"
}
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

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

Delete tag by ID

DELETE /workspaces/{workspaceId}/tags/{tagId}
200 OK

OK

204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

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

Task

Task endpoint for CRUD operations

Find tasks by list of IDs

POST /workspaces/{workspaceId}/projects/taskIds

taskIds

taskIds: string[]
Request Content-Types: application/json
Request Example
{
   "ids": ["5b1e6b160cb8793dd93ec120"]
}
200 OK

OK

type
201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

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

Find all tasks on project

GET /workspaces/{workspaceId}/projects/{projectId}/tasks/
200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

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

Add new task on project

When adding new tasks on projects, name and projectId are required fields. Optionally, you can also send estimate and assigneeId.

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

request

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

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (201 Created)
{
  "assigneeId": "",
  "estimate": "PT0S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
  "id": "5b1e6b160cb8793dd93ec120",
  "name": "Task 1",
  "projectId": "5b1667790cb8797321f3d664",
  "status": "ACTIVE" (Status: ACTIVE, DONE)
}

Find task by ID

GET /workspaces/{workspaceId}/projects/{projectId}/tasks/{id}
200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

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

Update task of project

PUT /workspaces/{workspaceId}/projects/{projectId}/tasks/{id}

request

Request Content-Types: application/json
Request Example
{
  "name": "Task updated",
  "assigneeId": "",
  "estimate": "PT0S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
  "status": "ACTIVE" (Status: ACTIVE, DONE)
}
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

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

Delete task by ID

DELETE /workspaces/{workspaceId}/projects/{projectId}/tasks/{id}
200 OK

OK

204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

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

Time entry

Operations about time entries

Find all time entries on workspace

Each request is limited to 10 time entries. To get the other 10 (and the next 10 and so on), you'll have to include the page parameter and increment it with each request (eg. https://api.clockify.me/api/workspaces/{workspaceId}/timeEntries/?page=1)

GET /workspaces/{workspaceId}/timeEntries/
page
in query
string 0
limit (can't be changed)
in query
string 10

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "billable": "true",
    "description": "Writing documentation",
    "hourlyRate": null,
    "id": "5b0fdf2a0cb87904845dfer5",
    "isLocked": "false",
    "project": {
      "archived": "false",
      "billable": "true",
      "clientId": "",
      "clientName": "",
      "color": "#f44336",
      "estimate": {
        "estimate": "PT0S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
        "type": "AUTO" (Type: AUTO, MANUAL)
      },
      "hourlyRate": null,
      "id": "5b1667790cb8797321f3d664",
      "memberships": [
        {
          "hourlyRate": {
            "amount": "30",
            "currency": "USD"
          },
          "membershipStatus": "ACTIVE",
          "membershipType": "PROJECT",
          "target": "5b1667790cb8797321f3d664",
          "userId": "6h1e49bf0cb8790e43d6c9ab"
        }
      ],
      "name": "Clockify 2",
      "public": "false",
      "workspaceId": "string"
    },
    "projectId": "5b1667790cb8797321f3d664",
    "tags": [
      {
        "id": "5a7c5d2db079870147fra234",
        "name": "Tag 1",
        "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
      }
    ],
    "task": {
      "assigneeId": "",
      "estimate": "PT0S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
      "id": "5b1e6b160cb8793dd93ec120",
      "name": "Task 1",
      "projectId": "5b1667790cb8797321f3d664",
      "status": "ACTIVE" (Status: ACTIVE, DONE)
    },
    "timeInterval": {
      "duration": "PT0S", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
      "end": "2018-08-15T11:30:00Z", Entries made in timesheet don't contain microseconds, while entries made in time tracker do contain microseconds (eg. 2018-08-17T16:00:00.688Z)
      "start": "2018-08-15T11:30:00Z" 
    },
    "totalBillable": null,
    "user": {
      "activeWorkspace": "5g3g57bt0cb2548e22e6l9cd",
      "defaultWorkspace": "5g3g57bt0cb2548e22e6l9cd",
      "email": "john.doe@clockify.me",
      "id": "6h1e49bf0cb8790e43d6c9ab",
      "memberships": [
        {
          "hourlyRate": {
            "amount": "15",
            "currency": "USD"
          },
          "membershipStatus": "ACTIVE",
          "membershipType": "WORKSPACE",
          "target": "5g3g57bt0cb2548e22e6l9cd",
          "userId": "6h1e49bf0cb8790e43d6c9ab"
        },
        {
          "hourlyRate": {
            "amount": "30",
            "currency": "USD"
          },
          "membershipStatus": "ACTIVE",
          "membershipType": "PROJECT",
          "target": "5b1667790cb8797321f3d664",
          "userId": "6h1e49bf0cb8790e43d6c9ab"
        }
      ],
      "name": "John Doe",
      "profilePicture": "https://s3.eu-central-1.amazonaws.com/test/profile.png",
      "settings": {
        "dateFormat": "MM/DD/YYYY",
        "isCompactViewOn": "false",
        "longRunning": "false",
        "sendNewsletter": "true",
        "summaryReportSettings": {
          "group": "Project", (Group: Project, Client, User, Tag, Time Entry, Task)
          "subgroup": "string" (Subgroup: Project, Client, User, Tag)
        },
        "timeFormat": "HOUR12",
        "timeTrackingManual": "true",
        "timeZone": "Europe/Belgrade",
        "weekStart": "MONDAY",
        "weeklyUpdates": "false"
      },
      "status": "ACTIVE"
    },
    "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
  }
]

Add new time entry on workspace

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

'start' is the only mandatory field on this endpoint. There is no workaround to automatically start with current time

POST /workspaces/{workspaceId}/timeEntries/
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

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", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "end": "2018-06-12T13:50:14Z",
    "start": "2018-06-12T13:48:14Z"
  },
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Add new time entry on workspace for another user

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}/timeEntries/{timeEntryId}/end" PATH (request example: {"end":"2019-02-07T14:00:07.000Z"}

POST /workspaces/{workspaceId}/timeEntries/user/{userId}
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

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", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "end": "2018-06-12T13:50:14Z",
    "start": "2018-06-12T13:48:14Z"
  },
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Get total duration for period

GET /workspaces/{workspaceId}/timeEntries/duration
Request Content-Types: application/json
Request Example
{
  "start": "2018-06-11T13:00:37Z",
  "end": "2018-06-12T14:01:41Z"
}

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "duration": "string"
}

Find personal time entry in progress

GET /workspaces/{workspaceId}/timeEntries/inProgress

OK

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": "null",
    "end": "null",
    "start": "2018-06-12T14:02:07Z"
  },
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Get personal time entries

Gets yours 50 most recent entries. When page = 1, you get the batch of next 50 most recent time entries

GET /workspaces/{workspaceId}/timeEntries/user/{userId}
page
in query
string 0
limit
in query
string 50

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

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

Get personal time entries in date range

Finds that user's entries in that date range.

POST /workspaces/{workspaceId}/timeEntries/user/{userId}/entriesInRange
Request Content-Types: application/json
Request Example
{
  "start": "2018-06-12T00:00:00.000Z",
  "end": "2018-06-18T23:59:59.999Z",
}

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

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

Update time entry on workspace

PUT /workspaces/{workspaceId}/timeEntries/{id}
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

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", (Duration example: PT1H30M15S - 1 hour 30 minutes 15 seconds)
    "end": "2018-06-12T14:01:41Z",
    "start": "2018-06-12T14:00:37Z"
  },
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Remove time entry by ID

DELETE /workspaces/{workspaceId}/timeEntries/{timeEntryId}
204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Response Content-Types: */*

Stop running timer

To stop the running timer you only need to know the ID of the workspace where the timer is running.

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 "501 Entity not created" message.

PUT /workspaces/{workspaceId}/timeEntries/endStarted
204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Request Content-Types: application/json
Request Example
{
  "end": "2018-10-16T10:54:39.883Z"
}

Stop someone else's running timer

Admins can stop someone their team'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 "501 Entity not created" message.

PUT /workspaces/{workspaceId}/timeEntries/{timeEntryId}/end
204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Request Content-Types: application/json
Request Example
{
  "end": "2018-10-16T10:54:39.883Z"
}

User

Operations about user

Find your user ID

You can find your own user ID by using the log-in endpoint.

To get IDs of other users in workspace, use:

GET /workspaces/{workspaceId}/users

POST /auth/token
200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Request Content-Types: application/json
Request Example
{
  "email": "joe.email@company.com",
  "password": "mypassword"
}
Response Content-Types: */*
Response Example (200 OK)
{
  "id": "5a0ab5acb07987125438b601",
  "email": "joe.email@company.com",
  "name": "Joe Doe",
  "token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1YTBhYjVhY2IwNzk4NzEyNTQzOGI2MGYiLCJpc3MiOiJjbG9ja22meSIsIm5hbWUiOiJPd25lciIsImV4cCI6MTU1MDU4MDY5NCwiZW1haWwiOiJhbGVrc2FuZGFyLm9saWNAY2xvY2tpZnkubWUifQ.72rNDjsc-nt3D82keikrPyoHzQaKzT3ka8h3bjeBX1",
  "membership": [
    {
      "userId": "5a0ab5acb07987125438b60f",
      "hourlyRate": null,
      "targetId": "5a0ab5adb07987125438b611",
      "membershipType": "USERGROUP",
      "membershipStatus": "ACTIVE"
    },
    {
     "userId": "5a0ab5acb07987125438b60f",
     "hourlyRate": {
        "amount": 2000,
        "currency": "USD"
      },
      "targetId": "5a0ab5adb07987125438b611",
      "membershipType": "USERGROUP",
      "membershipStatus": "ACTIVE"
    }
  ],
  "status": "ACTIVE",
  "isNew": "false",
  "refreshToken": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1YTBhYjVhY2IwNzk4NzEyNTQzOGI2MGYiLCJpc3MiOiJjbG9ja2lmeSIsIm5hbWUiO2JPd25lciIsImV4cCI6MTU1NDM4MjI5NCwiZW1haWwiOiJhbGVrc2FuZGFyLm9saWNAY2xvY2tpZnkubWUifQ.6DqNN7CR4QNAAOKeffoGfkJrTVaMsRMcXPwuQCTc4e1",
  "new": "false"
}

Find user by ID

GET /users/{userId}
200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "activeWorkspace": "5g3g57bt0cb2548e22e6l9cd",
  "defaultWorkspace": "5g3g57bt0cb2548e22e6l9cd",
  "email": "john.doe@clockify.me",
  "id": "6h1e49bf0cb8790e43d6c9ab",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "WORKSPACE",
      "target": "5g3g57bt0cb2548e22e6l9cd",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
    }
  ],
  "name": "John Doe",
  "profilePicture": "https://s3.eu-central-1.amazonaws.com/test/profile.png",
  "settings": {
    "dateFormat": "MM/DD/YYYY",
    "isCompactViewOn": "false",
    "longRunning": "false",
    "sendNewsletter": "true",
    "summaryReportSettings": {
      "group": "Project", (Group: Project, Client, User, Tag, Time Entry, Task)
      "subgroup": "Time entry" (Subgroup: Project, Client, User, Tag)
    },
    "timeFormat": "HOUR12",
    "timeTrackingManual": "true",
    "timeZone": "Europe/Belgrade",
    "weekStart": "MONDAY", 
    "weeklyUpdates": "false"
  },
  "status": "ACTIVE"
}

Set active workspace for user

POST /users/{userId}/activeWorkspace/{workspaceId}
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "activeWorkspace": "5g3g57bt0cb2548e22e6l9cd",
  "defaultWorkspace": "5g3g57bt0cb2548e22e6l9cd",
  "email": "john.doe@clockify.me",
  "id": "6h1e49bf0cb8790e43d6c9ab",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "WORKSPACE",
      "target": "5g3g57bt0cb2548e22e6l9cd",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
    }
  ],
  "name": "John Doe",
  "profilePicture": "https://s3.eu-central-1.amazonaws.com/test/profile.png",
  "settings": {
    "dateFormat": "MM/DD/YYYY",
    "isCompactViewOn": "false",
    "longRunning": "false",
    "sendNewsletter": "true",
    "summaryReportSettings": {
      "group": "Project", (Group: Project, Client, User, Tag, Time Entry, Task)
      "subgroup": "Time entry" (Subgroup: Project, Client, User, Tag)
    },
    "timeFormat": "HOUR12",
    "timeTrackingManual": "true",
    "timeZone": "Europe/Belgrade",
    "weekStart": "MONDAY", 
    "weeklyUpdates": "false"
  },
  "status": "ACTIVE"
}

Set default workspace for user

POST /users/{userId}/defaultWorkspace/{workspaceId}
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "activeWorkspace": "5g3g57bt0cb2548e22e6l9cd",
  "defaultWorkspace": "5g3g57bt0cb2548e22e6l9cd",
  "email": "john.doe@clockify.me",
  "id": "6h1e49bf0cb8790e43d6c9ab",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "WORKSPACE",
      "target": "5g3g57bt0cb2548e22e6l9cd",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
    }
  ],
  "name": "John Doe",
  "profilePicture": "https://s3.eu-central-1.amazonaws.com/test/profile.png",
  "settings": {
    "dateFormat": "MM/DD/YYYY",
    "isCompactViewOn": "false",
    "longRunning": "false",
    "sendNewsletter": "true",
    "summaryReportSettings": {
      "group": "Project", (Group: Project, Client, User, Tag, Time Entry, Task)
      "subgroup": "Time entry" (Subgroup: Project, Client, User, Tag)
    },
    "timeFormat": "HOUR12",
    "timeTrackingManual": "true",
    "timeZone": "Europe/Belgrade",
    "weekStart": "MONDAY", 
    "weeklyUpdates": "false"
  },
  "status": "ACTIVE"
}

Delete user by ID

POST /users/{userId}/delete

message

Request Content-Types: application/json
Request Example
"string"
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "activeWorkspace": "5g3g57bt0cb2548e22e6l9cd",
  "defaultWorkspace": "5g3g57bt0cb2548e22e6l9cd",
  "email": "john.doe@clockify.me",
  "id": "6h1e49bf0cb8790e43d6c9ab",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "WORKSPACE",
      "target": "5g3g57bt0cb2548e22e6l9cd",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
    }
  ],
  "name": "John Doe",
  "profilePicture": "https://s3.eu-central-1.amazonaws.com/test/profile.png",
  "settings": {
    "dateFormat": "MM/DD/YYYY",
    "isCompactViewOn": "false",
    "longRunning": "false",
    "sendNewsletter": "true",
    "summaryReportSettings": {
      "group": "Project", (Group: Project, Client, User, Tag, Time Entry, Task)
      "subgroup": "Time entry" (Subgroup: Project, Client, User, Tag)
    },
    "timeFormat": "HOUR12",
    "timeTrackingManual": "true",
    "timeZone": "Europe/Belgrade",
    "weekStart": "MONDAY", 
    "weeklyUpdates": "false"
  },
  "status": "ACTIVE"
}

Change users email

PUT /users/{userId}/email
Request Content-Types: application/json
Request Example
{
  "email": "doe.john@clockify.me"
}
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "email": "doe.john@clockify.me",
  "id": "6h1e49bf0cb8790e43d6c9ab",
  "isNew": "false",
  "membership": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "WORKSPACE",
      "target": "5g3g57bt0cb2548e22e6l9cd",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
    }
  ],
  "name": "John Doe",
  "new": "false",
  "refreshToken": "eyJhbLcTi7J3UzI1NiJ8.eyJzdWIiOiI1YTIxNGE3NWJwNzk4NzMwYzJmh2EwNjUiLCJpc3MiOiJjbG9ja2lmeSIsIm5hbWUiOiJDZWRvbWlyIE1pamFqbG92aWMiLCJleHAiOjE1MzI2MDA2MTksImVtYWlsIjoiY2Vkb21pci5taWphamxvdmljQGNvaW5nY3MuY29tIn0.A8X9NBKX9mN_y_TPMbzT4CoPjKTHiWryKaG8qOukykI",
  "status": "ACTIVE",
  "token": "eyJhbLcTi7J3UzI1NiJ8.eyJzdWIiOiI1YTIxNGE3NWJwNzk4NzMwYzJmh2EwNjUiLCJpc3MiOiJjbG9ja2lmeSIsIm5hbWUiOiJDZWRvbWlyIE1pamFqbG92aWMiLCJleHAiOjE1Mjg3OTkwMTksImVtYWlsIjoiY2Vkb21pci5taWphamxvdmljQGNvaW5nY3MuY29tIn0.gNNfAlKp3WwADiTlgyQ-NhMvfpshrdP_MuSta4FRImM"
}

Update user settings

You can only update your personal user settings. Other people's user settings are out of reach, even if you're workspace admin.

PUT /users/{userId}/settings
Request Content-Types: application/json
Request Example
{
  "profilePictureUrl": "https://s3.eu-central-1.amazonaws.com/test/profile2.png",
  "settings": {
    "dateFormat": "YYYY/MM/DD",
    "isCompactViewOn": "false",
    "longRunning": "false",
    "sendNewsletter": "true",
    "summaryReportSettings": {
      "group": "Client", (Group: Project, Client, User, Tag, Time Entry, Task)
      "subgroup": "Project" (Subgroup: Project, Client, User, Tag)
    },
    "timeFormat": "HOUR24", (Time format: HOUR12, HOUR24)
    "timeTrackingManual": "true",
    "timeZone": "Europe/Belgrade",
    "weekStart": "MONDAY",
    "weeklyUpdates": "false"
  },
  "name": "Doe John",
}
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "activeWorkspace": "5g3g57bt0cb2548e22e6l9cd",
  "defaultWorkspace": "5g3g57bt0cb2548e22e6l9cd",
  "email": "john.doe@clockify.me",
  "id": "6h1e49bf0cb8790e43d6c9ab",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "15",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "WORKSPACE",
      "target": "5g3g57bt0cb2548e22e6l9cd",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
    }
  ],
  "name": "Doe John",
  "profilePicture": "https://s3.eu-central-1.amazonaws.com/test/profile2.png",
  "settings": {
    "dateFormat": "YYYY/MM/DD",
    "isCompactViewOn": "false",
    "longRunning": "false",
    "sendNewsletter": "true",
    "summaryReportSettings": {
      "group": "Project", (Group: Project, Client, User, Tag, Time Entry, Task)
      "subgroup": "Time entry" (Subgroup: Project, Client, User, Tag)
    },
    "timeFormat": "HOUR24", (Time format: HOUR12, HOUR24)
    "timeTrackingManual": "true",
    "timeZone": "Europe/Belgrade",
    "weekStart": "MONDAY", 
    "weeklyUpdates": "false"
  },
  "status": "ACTIVE"
}

User group

Operations about user-group

Find all user groups of workspace

GET /workspaces/{workspaceId}/userGroups
200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "id": "6g375388b079876a9beb34e8",
    "name": "Developers",
    "userIds": [
      "6h1e49bf0cb8790e43d6c9ab"
    ],
    "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
  }
]

Add new user group

POST /workspaces/{workspaceId}/userGroups/
Request Content-Types: application/json
Request Example
{
  "name": "Managers"
}
201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (201 Created)
{
  "id": "5t65656l032566a9bef54h7",
  "name": "Managers",
  "userIds": [
    "6h1e49bf0cb8790e43d6c9ab"
  ],
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Add user on user group

POST /workspaces/{workspaceId}/userGroups/users/
Request Content-Types: application/json
Request Example
{
  "userId": "6h1e49bf0cb8790e43d6c9ab",
  "userGroupIds": [
    "5t65656l032566a9bef54h7"
  ]
}
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "id": "5t65656l032566a9bef54h7",
    "name": "Managers",
    "userIds": [
      "6h1e49bf0cb8790e43d6c9ab"
    ],
    "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
  }
]

Remove user from user group

DELETE /workspaces/{workspaceId}/userGroups/users/
userGroupIds
in query
string[]

userGroupIds

Array values passed as multiple parameters: ?userGroupIds=aaa&userGroupIds=bbb
userId
in query
string

userId

200 OK

OK

204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "id": "5t65656l032566a9bef54h7",
    "name": "Managers",
    "userIds": [],
    "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
  }
]

Find user group by ID

GET /workspaces/{workspaceId}/userGroups/{id}
200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "id": "6g375388b079876a9beb34e8",
  "name": "Developers",
  "userIds": [
    "6h1e49bf0cb8790e43d6c9ab"
  ],
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Update user group

PUT /workspaces/{workspaceId}/userGroups/{id}
Request Content-Types: application/json
Request Example
{
  "name": "Developers updated"
}
200 OK

OK

201 Created

Created

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
{
  "id": "6g375388b079876a9beb34e8",
  "name": "Developers updated",
  "userIds": [
    "6h1e49bf0cb8790e43d6c9ab"
  ],
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Delete user group by ID

DELETE /workspaces/{workspaceId}/userGroups/{id}
200 OK

OK

204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

Response Content-Types: */*
Response Example (200 OK)
{
  "id": "6g375388b079876a9beb34e8",
  "name": "Developers updated",
  "userIds": [
    "6h1e49bf0cb8790e43d6c9ab"
  ],
  "workspaceId": "5g3g57bt0cb2548e22e6l9cd"
}

Workspace

Operations about workspace

Find all workspaces for 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",
        "target": "5g3g57bt0cb2548e22e6l9cd",
        "userId": "6h1e49bf0cb8790e43d6c9ab"
      }
    ],
    "name": "Clockify workspace",
    "workspaceSettings": {
      "canSeeTimeSheet": "false",
      "defaultBillableProjects": "true",
      "forceDescription": "false",
      "forceProjects": "false",
      "forceTags": "false",
      "forceTasks": "false",
      "lockTimeEntries": "null",
      "onlyAdminsCreateProject": "false",
      "onlyAdminsSeeAllTimeEntries": "true",
      "onlyAdminsSeeBillableRates": "false",
      "onlyAdminsSeeDashboard": "false",
      "onlyAdminsSeePublicProjectsEntries": "false",
      "projectFavorites": "null",
      "projectPickerSpecialFilter": "null",
      "round": {
        "minutes": "15",
        "round": "Round up to" (Round: Round up to, Round to nearest, Round down to)
      },
      "timeRoundingInReports": "false"
    }
  }
]

Add new workspace

POST /workspaces/

workspaceCreationRequest

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

Created

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",
        "target": "5g3g57bt0cb2548e22e6l9cd",
        "userId": "6h1e49bf0cb8790e43d6c9ab"
      }
    ],
    "name": "Development",
    "workspaceSettings": {
      "canSeeTimeSheet": "false",
      "defaultBillableProjects": "true",
      "forceDescription": "false",
      "forceProjects": "false",
      "forceTags": "false",
      "forceTasks": "false",
      "lockTimeEntries": "null",
      "onlyAdminsCreateProject": "false",
      "onlyAdminsSeeAllTimeEntries": "true",
      "onlyAdminsSeeBillableRates": "false",
      "onlyAdminsSeeDashboard": "false",
      "onlyAdminsSeePublicProjectsEntries": "false",
      "projectFavorites": "null",
      "projectPickerSpecialFilter": "null",
      "round": {
        "minutes": "15",
        "round": "Round up to" (Round: Round up to, Round to nearest, Round down to)
      },
      "timeRoundingInReports": "false"
    }
  }

Find workspace by ID

GET /workspaces/{workspaceId}
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",
        "target": "5g3g57bt0cb2548e22e6l9cd",
        "userId": "6h1e49bf0cb8790e43d6c9ab"
      }
    ],
    "name": "Clockify workspace",
    "workspaceSettings": {
      "canSeeTimeSheet": "false",
      "defaultBillableProjects": "true",
      "forceDescription": "false",
      "forceProjects": "false",
      "forceTags": "false",
      "forceTasks": "false",
      "lockTimeEntries": "null",
      "onlyAdminsCreateProject": "false",
      "onlyAdminsSeeAllTimeEntries": "true",
      "onlyAdminsSeeBillableRates": "false",
      "onlyAdminsSeeDashboard": "false",
      "onlyAdminsSeePublicProjectsEntries": "false",
      "projectFavorites": "null",
      "projectPickerSpecialFilter": "null",
      "round": {
        "minutes": "15",
        "round": "Round up to" (Round: Round up to, Round to nearest, Round down to)
      },
      "timeRoundingInReports": "false"
    }
  }

Update workspace

PUT /workspaces/{workspaceId}
Request Content-Types: application/json
Request Example
{
  "name": "Clockify workspace updated",
  "hourlyRate": {
    "amount": "10",
    "currency": "USD"
  },
  "workspaceSettings": {
    "projectFavorites": "false",
    "timeRoundingInReports": "false",
    "onlyAdminsSeeBillableRates": "false",
    "onlyAdminsCreateProject": "false",
    "onlyAdminsSeeDashboard": "false",
    "defaultBillableProjects": "true",
    "lockTimeEntries": "null",
    "round": {
      "round": "Round up to", (Round: Round up to, Round to nearest, Round down to)
      "minutes": "15"
    },
    "canSeeTimeSheet": "false",
    "projectPickerSpecialFilter": "false",
    "forceProjects": "false",
    "forceTasks": "false",
    "forceTags": "false",
    "forceDescription": "false",
    "onlyAdminsSeeAllTimeEntries": "true",
    "onlyAdminsSeePublicProjectsEntries": "false"
  },
  "imageUrl": "https://s3.eu-central-1.amazonaws.com/test/workspaceImg.png"
}
200 OK

OK

201 Created

Created

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",
      "target": "5g3g57bt0cb2548e22e6l9cd",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
    }
  ],
  "name": "Clockify workspace updated",
  "workspaceSettings": {
    "canSeeTimeSheet": "false",
    "defaultBillableProjects": "true",
    "forceDescription": "false",
    "forceProjects": "false",
    "forceTags": "false",
    "forceTasks": "false",
    "lockTimeEntries": "null",
    "onlyAdminsCreateProject": "false",
    "onlyAdminsSeeAllTimeEntries": "true",
    "onlyAdminsSeeBillableRates": "false",
    "onlyAdminsSeeDashboard": "false",
    "onlyAdminsSeePublicProjectsEntries": "false",
    "projectFavorites": "null",
    "projectPickerSpecialFilter": "null",
    "round": {
      "minutes": "15",
      "round": "Round up to" (Round: Round up to, Round to nearest, Round down to)
    },
    "timeRoundingInReports": "false"
  }
}

Leave workspace

DELETE /workspaces/{workspaceId}
200 OK

OK

204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

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",
      "target": "5g3g57bt0cb2548e22e6l9cd",
      "userId": "6h1e49bf0cb8790e43d6c9ab"
    }
  ],
  "name": "Clockify workspace",
  "workspaceSettings": {
    "canSeeTimeSheet": "false",
    "defaultBillableProjects": "true",
    "forceDescription": "false",
    "forceProjects": "false",
    "forceTags": "false",
    "forceTasks": "false",
    "lockTimeEntries": "null",
    "onlyAdminsCreateProject": "false",
    "onlyAdminsSeeAllTimeEntries": "true",
    "onlyAdminsSeeBillableRates": "false",
    "onlyAdminsSeeDashboard": "false",
    "onlyAdminsSeePublicProjectsEntries": "false",
    "projectFavorites": "null",
    "projectPickerSpecialFilter": "null",
    "round": {
      "minutes": "15",
      "round": "Round up to" (Round: Round up to, Round to nearest, Round down to)
    },
    "timeRoundingInReports": "false"
  }
}

Find all invited users on workspace

GET /workspaces/{workspaceId}/invitedUsers

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

Response Content-Types: */*
Response Example (200 OK)
[
  {
    "email": "john.doe@clockify.me",
    "id": "6h1e49bf0cb8790e43d6c9ab",
    "invitation": "null",
    "memberships": [
      {
        "hourlyRate": {
          "amount": "0",
          "currency": "USD"
        },
        "membershipStatus": "PENDING",
        "membershipType": "WORKSPACE",
        "target": "5g3g57bt0cb2548e22e6l9cd",
        "userId": "6h1e49bf0cb8790e43d6c9ab"
      }
    ]
  }
]

Remove user from workspace

DELETE /workspaces/{workspaceId}/user/{userId}
200 OK

OK

204 No Content

No Content

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

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": [],
  "name": "Clockify workspace",
  "workspaceSettings": {
    "canSeeTimeSheet": "false",
    "defaultBillableProjects": "true",
    "forceDescription": "false",
    "forceProjects": "false",
    "forceTags": "false",
    "forceTasks": "false",
    "lockTimeEntries": "null",
    "onlyAdminsCreateProject": "false",
    "onlyAdminsSeeAllTimeEntries": "true",
    "onlyAdminsSeeBillableRates": "false",
    "onlyAdminsSeeDashboard": "false",
    "onlyAdminsSeePublicProjectsEntries": "false",
    "projectFavorites": "false",
    "projectPickerSpecialFilter": "false",
    "round": {
      "minutes": "15",
      "round": "Round up to" (Round: Round up to, Round to nearest, Round down to)
    },
    "timeRoundingInReports": "false"
  }
}

Find all users and their IDs 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": "5g3g57bt0cb2548e22e6l9cd",
    "defaultWorkspace": "5g3g57bt0cb2548e22e6l9cd",
    "email": "john.doe@clockify.me",
    "id": "6h1e49bf0cb8790e43d6c9ab",
    "memberships": [
      {
        "hourlyRate": {
          "amount": "15",
          "currency": "USD"
        },
        "membershipStatus": "ACTIVE",
        "membershipType": "WORKSPACE",
        "target": "5g3g57bt0cb2548e22e6l9cd",
        "userId": "6h1e49bf0cb8790e43d6c9ab"
      }
    ],
    "name": "Doe John",
    "profilePicture": "https://s3.eu-central-1.amazonaws.com/test/profile2.png",
    "settings": {
      "dateFormat": "YYYY/MM/DD",
      "isCompactViewOn": "false",
      "longRunning": "false",
      "sendNewsletter": "true",
      "summaryReportSettings": {
        "group": "Project", (Group: Project, Client, User, Tag, Time Entry, Task)
        "subgroup": "Time entry" (Subgroup: Project, Client, User, Tag)
      },
      "timeFormat": "HOUR24", (Time format: HOUR12, HOUR24)
      "timeTrackingManual": "true",
      "timeZone": "Europe/Belgrade",
      "weekStart": "MONDAY", 
      "weeklyUpdates": "false"
    },
    "status": "ACTIVE"
  }
]

Add users on workspace

POST /workspaces/{workspaceId}/users
Request Content-Types: application/json
Request Example
{
  "emails": [
    "developer@clockify.me"
  ]
}
200 OK

OK

201 Created

Created

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": "PENDING",
      "membershipType": "WORKSPACE",
      "target": "5g3g57bt0cb2548e22e6l9cd",
      "userId": "2r4tg5yu7d3sv65bn365hj8k"
    }
  ],
  "name": "Clockify workspace",
  "workspaceSettings": {
    "canSeeTimeSheet": "false",
    "defaultBillableProjects": "true",
    "forceDescription": "false",
    "forceProjects": "false",
    "forceTags": "false",
    "forceTasks": "false",
    "lockTimeEntries": "null",
    "onlyAdminsCreateProject": "false",
    "onlyAdminsSeeAllTimeEntries": "true",
    "onlyAdminsSeeBillableRates": "false",
    "onlyAdminsSeeDashboard": "false",
    "onlyAdminsSeePublicProjectsEntries": "false",
    "projectFavorites": "false",
    "projectPickerSpecialFilter": "false",
    "round": {
      "minutes": "15",
      "round": "Round up to" (Round: Round up to, Round to nearest, Round down to)
    },
    "timeRoundingInReports": "false"
  }
}

Set hourly rate for user

POST /workspaces/{workspaceId}/users/{userId}/hourlyRate
Request Content-Types: application/json
Request Example
{
  "amount": "30",
  "currency": "USD"
}
200 OK

OK

201 Created

Created

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": "30",
        "currency": "USD"
      },
      "membershipStatus": "ACTIVE",
      "membershipType": "WORKSPACE",
      "target": "5g3g57bt0cb2548e22e6l9cd",
      "userId": "2r4tg5yu7d3sv65bn365hj8k"
    }
  ],
  "name": "Clockify workspace",
  "workspaceSettings": {
    "canSeeTimeSheet": "false",
    "defaultBillableProjects": "true",
    "forceDescription": "false",
    "forceProjects": "false",
    "forceTags": "false",
    "forceTasks": "false",
    "lockTimeEntries": "null",
    "onlyAdminsCreateProject": "false",
    "onlyAdminsSeeAllTimeEntries": "true",
    "onlyAdminsSeeBillableRates": "false",
    "onlyAdminsSeeDashboard": "false",
    "onlyAdminsSeePublicProjectsEntries": "false",
    "projectFavorites": "false",
    "projectPickerSpecialFilter": "false",
    "round": {
      "minutes": "15",
      "round": "Round up to" (Round: Round up to, Round to nearest, Round down to)
    },
    "timeRoundingInReports": "false"
  }
}

Schema Definitions

AddUserToUserGroupRequest

userId: string
userGroupIds: string[]
string
Example
{
  "userId": "string",
  "userGroupIds": [
    "string"
  ]
}

AddUsersToProjectRequest

userIds: string[]
string
userGroupIds: string[]
string
Example
{
  "userIds": [
    "string"
  ],
  "userGroupIds": [
    "string"
  ]
}

AddUsersToWorkspaceRequest

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

AuthDto

id: string
key: string
memberships: MembershipDto
MembershipDto
name: string
new: boolean
refreshToken: string
roles: string[]
string USER, MANAGER, ADMIN
status: string ACTIVE, PENDING_EMAIL_VERIFICATION, DELETED
token: string
Example
{
  "id": "string",
  "key": "string",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "integer (int32)",
        "currency": "string"
      },
      "membershipStatus": "string",
      "membershipType": "string",
      "target": "string",
      "userId": "string"
    }
  ],
  "name": "string",
  "new": "boolean",
  "refreshToken": "string",
  "roles": [
    "string"
  ],
  "status": "string",
  "token": "string"
}

AuthResponse

email: string
id: string
isNew: boolean
membership: MembershipDto
MembershipDto
name: string
new: boolean
refreshToken: string
status: string ACTIVE, PENDING_EMAIL_VERIFICATION, DELETED
token: string
Example
{
  "email": "string",
  "id": "string",
  "isNew": "boolean",
  "membership": [
    {
      "hourlyRate": {
        "amount": "integer (int32)",
        "currency": "string"
      },
      "membershipStatus": "string",
      "membershipType": "string",
      "target": "string",
      "userId": "string"
    }
  ],
  "name": "string",
  "new": "boolean",
  "refreshToken": "string",
  "status": "string",
  "token": "string"
}

AuthenticationRequest

email: string
password: string
Example
{
  "email": "string",
  "password": "string"
}

ChangeEmailRequest

email: string
Example
{
  "email": "string"
}

ClientDto

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

ClientRequest

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

CreateProjectRequest

name: string
clientId: string
isPublic: boolean
estimate: EstimateDto
color: string
billable: boolean
Example
{
  "name": "string",
  "clientId": "string",
  "isPublic": "boolean",
  "estimate": {
    "estimate": "string",
    "type": "string"
  },
  "color": "string",
  "billable": "boolean"
}

CreateTimeEntryRequest

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"
  ]
}

TimeEntryStartEndRequest

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

CreateUserGroupRequest

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

CreateWorkspaceRequest

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

EstimateDto

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

GetSummaryReportRequest

startDate: string
endDate: string
me: string
userGroupIds: string[]
userIds: string[]
projectIds: string[]
clientIds: string[]
taskIds: string[]
tagIds: string[]
billable: string
includeTimeEntries: boolean
zoomLevel: string
description: string
archived: string
roundingOn: boolean
Example
{
  "startDate": "string",
  "endDate": "string",
  "me": "string",
  "userGroupIds": [
    "string"
  ],
  "userIds": [
    "string"
  ],
  "projectIds": [
    "string"
  ],
  "clientIds": [
    "string"
  ],
  "taskIds": [
    "string"
  ],
  "tagIds": [
    "string"
  ],
  "billable": "string",
  "includeTimeEntries": "boolean",
  "zoomLevel": "string",
  "description": "string",
  "archived": "string",
  "roundingOn": "boolean"
}

HourlyRateDto

amount: integer (int32)
currency: string
Example
{
  "amount": "integer (int32)",
  "currency": "string"
}

HourlyRateRequest

amount: integer (int32)
currency: string
Example
{
  "amount": "integer (int32)",
  "currency": "string"
}

InvitationDto

creation: string (date-time)
invitationCode: string
membership: MembershipDto
workspaceId: string
workspaceName: string
Example
{
  "creation": "string (date-time)",
  "invitationCode": "string",
  "membership": {
    "hourlyRate": {
      "amount": "integer (int32)",
      "currency": "string"
    },
    "membershipStatus": "string",
    "membershipType": "string",
    "target": "string",
    "userId": "string"
  },
  "workspaceId": "string",
  "workspaceName": "string"
}

InvitedUserDto

email: string
id: string
invitation: InvitationDto
memberships: MembershipDto
MembershipDto
Example
{
  "email": "string",
  "id": "string",
  "invitation": {
    "creation": "string (date-time)",
    "invitationCode": "string",
    "membership": {
      "hourlyRate": {
        "amount": "integer (int32)",
        "currency": "string"
      },
      "membershipStatus": "string",
      "membershipType": "string",
      "target": "string",
      "userId": "string"
    },
    "workspaceId": "string",
    "workspaceName": "string"
  },
  "memberships": [
    {
      "hourlyRate": {
        "amount": "integer (int32)",
        "currency": "string"
      },
      "membershipStatus": "string",
      "membershipType": "string",
      "target": "string",
      "userId": "string"
    }
  ]
}

MembershipDto

hourlyRate: HourlyRateDto
membershipStatus: string PENDING, ACTIVE, DECLINED, INACTIVE
membershipType: string
target: string
userId: string
Example
{
  "hourlyRate": {
    "amount": "integer (int32)",
    "currency": "string"
  },
  "membershipStatus": "string",
  "membershipType": "string",
  "target": "string",
  "userId": "string"
}

ProjectDtoImpl

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

ProjectFullDto

archived: boolean
billable: boolean
client: ClientDto
clientId: string
color: string
estimate: EstimateDto
hourlyRate: HourlyRateDto
id: string
memberships: MembershipDto
MembershipDto
name: string
public: boolean
tasks: TaskDto
TaskDto
workspaceId: string
Example
{
  "archived": "boolean",
  "billable": "boolean",
  "client": {
    "id": "string",
    "name": "string",
    "workspaceId": "string"
  },
  "clientId": "string",
  "color": "string",
  "estimate": {
    "estimate": "string",
    "type": "string"
  },
  "hourlyRate": {
    "amount": "integer (int32)",
    "currency": "string"
  },
  "id": "string",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "integer (int32)",
        "currency": "string"
      },
      "membershipStatus": "string",
      "membershipType": "string",
      "target": "string",
      "userId": "string"
    }
  ],
  "name": "string",
  "public": "boolean",
  "tasks": [
    {
      "assigneeId": "string",
      "estimate": "string",
      "id": "string",
      "name": "string",
      "projectId": "string",
      "status": "string"
    }
  ],
  "workspaceId": "string"
}

RefreshTokenRequest

refreshToken: string
Example
{
  "refreshToken": "string"
}

ReportDto

archived: string
billable: string
clientIds: string[]
string
description: string
end: string (date-time)
endDate: string (date-time)
group: string
id: string
name: string
projectIds: string[]
string
public: boolean
roundingOn: boolean
start: string (date-time)
startDate: string (date-time)
subgroup: string
tagIds: string[]
string
taskIds: string[]
string
type: string SUMMARY, DETAILED, WEEKLY
userId: string
userIds: string[]
string
visibleToUserGroup: string
workspaceId: string
zoomLevel: string
Example
{
  "archived": "string",
  "billable": "string",
  "clientIds": [
    "string"
  ],
  "description": "string",
  "end": "string (date-time)",
  "endDate": "string (date-time)",
  "group": "string",
  "id": "string",
  "name": "string",
  "projectIds": [
    "string"
  ],
  "public": "boolean",
  "roundingOn": "boolean",
  "start": "string (date-time)",
  "startDate": "string (date-time)",
  "subgroup": "string",
  "tagIds": [
    "string"
  ],
  "taskIds": [
    "string"
  ],
  "type": "string",
  "userId": "string",
  "userIds": [
    "string"
  ],
  "visibleToUserGroup": "string",
  "workspaceId": "string",
  "zoomLevel": "string"
}

Round

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

SaveReportRequest

name: string
userIds: string[]
string
clientIds: string[]
string
projectIds: string[]
string
taskIds: string[]
string
tagIds: string[]
string
description: string
group: string
subgroup: string
start: string
end: string
billable: string
zoomLevel: string
type: string SUMMARY, DETAILED, WEEKLY
userId: string
isPublic: boolean
visibleToUserGroup: string
archived: string
roundingOn: boolean
Example
{
  "name": "string",
  "userIds": [
    "string"
  ],
  "clientIds": [
    "string"
  ],
  "projectIds": [
    "string"
  ],
  "taskIds": [
    "string"
  ],
  "tagIds": [
    "string"
  ],
  "description": "string",
  "group": "string",
  "subgroup": "string",
  "start": "string",
  "end": "string",
  "billable": "string",
  "zoomLevel": "string",
  "type": "string",
  "userId": "string",
  "isPublic": "boolean",
  "visibleToUserGroup": "string",
  "archived": "string",
  "roundingOn": "boolean"
}

SavedSummaryReportDto

clients: ClientDto
ClientDto
endDate: string
group: string
projects: ProjectFullDto
ProjectFullDto
reportType: string
startDate: string
subgroup: string
summaryReport: SummaryReportDto
users: UserDto
UserDto
workspace: WorkspaceDto
zoomLevel: string
Example
{
  "clients": [
    {
      "id": "string",
      "name": "string",
      "workspaceId": "string"
    }
  ],
  "endDate": "string",
  "group": "string",
  "projects": [
    {
      "archived": "boolean",
      "billable": "boolean",
      "client": {
        "id": "string",
        "name": "string",
        "workspaceId": "string"
      },
      "clientId": "string",
      "color": "string",
      "estimate": {
        "estimate": "string",
        "type": "string"
      },
      "hourlyRate": {
        "amount": "integer (int32)",
        "currency": "string"
      },
      "id": "string",
      "memberships": [
        {
          "hourlyRate": {
            "amount": "integer (int32)",
            "currency": "string"
          },
          "membershipStatus": "string",
          "membershipType": "string",
          "target": "string",
          "userId": "string"
        }
      ],
      "name": "string",
      "public": "boolean",
      "tasks": [
        {
          "assigneeId": "string",
          "estimate": "string",
          "id": "string",
          "name": "string",
          "projectId": "string",
          "status": "string"
        }
      ],
      "workspaceId": "string"
    }
  ],
  "reportType": "string",
  "startDate": "string",
  "subgroup": "string",
  "summaryReport": {
    "dateAndTotalBillableTime": "object",
    "dateAndTotalNotBillableTime": "object",
    "projectAndTotalTime": "object",
    "totalTime": "string",
    "workspaceId": "string"
  },
  "users": [
    {
      "activeWorkspace": "string",
      "defaultWorkspace": "string",
      "email": "string",
      "id": "string",
      "memberships": [
        {
          "hourlyRate": {
            "amount": "integer (int32)",
            "currency": "string"
          },
          "membershipStatus": "string",
          "membershipType": "string",
          "target": "string",
          "userId": "string"
        }
      ],
      "name": "string",
      "profilePicture": "string",
      "settings": {
        "dateFormat": "string",
        "isCompactViewOn": "boolean",
        "longRunning": "boolean",
        "sendNewsletter": "boolean",
        "summaryReportSettings": {
          "group": "string",
          "subgroup": "string"
        },
        "timeFormat": "string",
        "timeTrackingManual": "boolean",
        "timeZone": "string",
        "weekStart": "string",
        "weeklyUpdates": "boolean"
      },
      "status": "string"
    }
  ]
}

SummaryReportDto

dateAndTotalBillableTime: object
dateAndTotalNotBillableTime: object
projectAndTotalTime: object
totalTime: string
workspaceId: string
timeEntries: object
Example
{
  "dateAndTotalBillableTime": "object",
  "dateAndTotalNotBillableTime": "object",
  "projectAndTotalTime": "object",
  "totalTime": "string",
  "workspaceId": "string",
  "timeEntries": "object"
}

SummaryReportSettingsDto

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

TagDto

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

TagRequest

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

TaskDto

assigneeId: string
estimate: string
id: string
name: string
projectId: string
status: string ACTIVE, DONE
Example
{
  "assigneeId": "string",
  "estimate": "string",
  "id": "string",
  "name": "string",
  "projectId": "string",
  "status": "string"
}

TaskRequest

id: string
name: string
projectId: string
assigneeId: string
estimate: string
status: string
Example
{
  "id": "string",
  "name": "string",
  "projectId": "string",
  "assigneeId": "string",
  "estimate": "string",
  "status": "string"
}

TimeEntriesDuration

Start: string (date-time)
End: string (date-time)
Example
{
  "start": "2018-06-11T13:00:37Z",
  "end": "2018-06-12T14:01:41Z"
}

TimeEntriesListDto

allEntriesCount: integer (int64)
gotAllEntries: boolean
timeEntriesList: TimeEntryDtoImpl
TimeEntryDtoImpl
Example
{
  "allEntriesCount": "integer (int64)",
  "gotAllEntries": "boolean",
  "timeEntriesList": [
    {
      "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"
    }
  ]
}

TimeEntryDtoImpl

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"
}

TimeEntryFullDto

billable: boolean
description: string
hourlyRate: HourlyRateDto
id: string
isLocked: boolean
project: ProjectDtoImpl
projectId: string
tags: TagDto
TagDto
task: TaskDto
timeInterval: TimeIntervalDto
totalBillable: integer (int64)
user: UserDto
workspaceId: string
Example
{
  "billable": "boolean",
  "description": "string",
  "hourlyRate": {
    "amount": "integer (int32)",
    "currency": "string"
  },
  "id": "string",
  "isLocked": "boolean",
  "project": {
    "archived": "boolean",
    "billable": "boolean",
    "clientId": "string",
    "color": "string",
    "estimate": {
      "estimate": "string",
      "type": "string"
    },
    "hourlyRate": {
      "amount": "integer (int32)",
      "currency": "string"
    },
    "id": "string",
    "memberships": [
      {
        "hourlyRate": {
          "amount": "integer (int32)",
          "currency": "string"
        },
        "membershipStatus": "string",
        "membershipType": "string",
        "target": "string",
        "userId": "string"
      }
    ],
    "name": "string",
    "public": "boolean",
    "workspaceId": "string"
  },
  "projectId": "string",
  "tags": [
    {
      "id": "string",
      "name": "string",
      "workspaceId": "string"
    }
  ],
  "task": {
    "assigneeId": "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": {
    "activeWorkspace": "string",
    "defaultWorkspace": "string",
    "email": "string",
    "id": "string",
    "memberships": [
      {
        "hourlyRate": {
          "amount": "integer (int32)",
          "currency": "string"
        },
        "membershipStatus": "string",
        "membershipType": "string",
        "target": "string",
        "userId": "string"
      }
    ],
    "name": "string",
    "profilePicture": "string",
    "settings": {
      "dateFormat": "string",
      "isCompactViewOn": "boolean",
      "longRunning": "boolean",
      "sendNewsletter": "boolean",
      "summaryReportSettings": {
        "group": "string",
        "subgroup": "string"
      },
      "timeFormat": "string",
      "timeTrackingManual": "boolean",
      "timeZone": "string",
      "weekStart": "string",
      "weeklyUpdates": "boolean"
    },
    "status": "string"
  },
  "workspaceId": "string"
}

TimeIntervalDto

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

TimeEntrySummaryDto

id: string
billable: boolean
description: string
project: object
clientId: string
clientName: string
hourlyRate: object
timeInterval: string (date-time)
user: object
task: object
tags: object
name: string
workspaceId: string
totalBillable: number
isLocked: boolean
Example
{
      "id": "5c5d903040d6da66707b81df",
      "billable": true,
      "description": Working on docs, 
      "project": {
          "id": "595a0476b0798754c022e1df",
          "name": "MyProject",
          "color": "#f44336"
      },
      "clientId": "592fef6ab5798737a6d521df",
      "clientName": "COING",
      "hourlyRate": {
          "amount": "500",
          "currency": "USD"
      },
      "timeInterval": {
          "start": "2019-02-08T12:00:01Z",
          "end": "2019-02-08T13:00:01Z",
          "duration": "PT1H"
      },
      "user": {
          "id": "5a0ab5acb07987122438b1df",
          "name": "Jack White",
          "email": "jack.white@clockify.me"
      },
      "task": null,
      "tags": [{
        "id": "5b2c12f6b079372d5bcf31df"
    }],
      "name": "development",
      "workspaceId": "592e9e48b0758735d03919ee",
      "totalBillable": 500,
      "isLocked": false
}

UpdateProjectRequest

name: string
hourlyRate: HourlyRateRequest
clientId: string
billable: boolean
isPublic: boolean
estimate: EstimateDto
color: string
Example
{
  "name": "string",
  "hourlyRate": {
    "amount": "integer (int32)",
    "currency": "string"
  },
  "clientId": "string",
  "billable": "boolean",
  "isPublic": "boolean",
  "estimate": {
    "estimate": "string",
    "type": "string"
  },
  "color": "string"
}

UpdateReportRequest

name: string
isPublic: boolean
visibleToUserGroup: string
Example
{
  "name": "string",
  "isPublic": "boolean",
  "visibleToUserGroup": "string"
}

UpdateRoundRequest

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

UpdateTimeEntryRequest

UpdateTimeEntryRequest requires "billable" as input

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"
  ]
}

UpdateUserGroupNameRequest

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

UpdateUserSettingsRequest

profilePictureUrl: string
settings: UserSettingsDto
name: string
profilePicture: string
Example
{
  "profilePictureUrl": "string",
  "settings": {
    "dateFormat": "string",
    "isCompactViewOn": "boolean",
    "longRunning": "boolean",
    "sendNewsletter": "boolean",
    "summaryReportSettings": {
      "group": "string",
      "subgroup": "string"
    },
    "timeFormat": "string",
    "timeTrackingManual": "boolean",
    "timeZone": "string",
    "weekStart": "string",
    "weeklyUpdates": "boolean"
  },
  "name": "string",
  "profilePicture": "string"
}

UpdateWorkspaceRequest

name: string
hourlyRate: HourlyRateRequest
workspaceSettings: UpdateWorkspaceSettingsRequest
imageUrl: string
Example
{
  "name": "string",
  "hourlyRate": {
    "amount": "integer (int32)",
    "currency": "string"
  },
  "workspaceSettings": {
    "lockedTimeEntries": "string",
    "projectFavorites": "boolean",
    "timeRoundingInReports": "boolean",
    "onlyAdminsSeeBillableRates": "boolean",
    "onlyAdminsCreateProject": "boolean",
    "onlyAdminsSeeDashboard": "boolean",
    "defaultBillableProjects": "boolean",
    "lockTimeEntries": "string",
    "round": {
      "round": "string",
      "minutes": "string"
    },
    "projectFavorite": "boolean",
    "canSeeTimeSheet": "boolean",
    "projectPickerSpecialFilter": "boolean",
    "forceProjects": "boolean",
    "forceTasks": "boolean",
    "forceTags": "boolean",
    "forceDescription": "boolean",
    "onlyAdminsSeeAllTimeEntries": "boolean",
    "onlyAdminsSeePublicProjectsEntries": "boolean"
  },
  "imageUrl": "string"
}

UpdateWorkspaceSettingsRequest

lockedTimeEntries: string
projectFavorites: boolean
timeRoundingInReports: boolean
onlyAdminsSeeBillableRates: boolean
onlyAdminsCreateProject: boolean
onlyAdminsSeeDashboard: boolean
defaultBillableProjects: boolean
lockTimeEntries: string
round: UpdateRoundRequest
projectFavorite: boolean
canSeeTimeSheet: boolean
projectPickerSpecialFilter: boolean
forceProjects: boolean
forceTasks: boolean
forceTags: boolean
forceDescription: boolean
onlyAdminsSeeAllTimeEntries: boolean
onlyAdminsSeePublicProjectsEntries: boolean
Example
{
  "lockedTimeEntries": "string",
  "projectFavorites": "boolean",
  "timeRoundingInReports": "boolean",
  "onlyAdminsSeeBillableRates": "boolean",
  "onlyAdminsCreateProject": "boolean",
  "onlyAdminsSeeDashboard": "boolean",
  "defaultBillableProjects": "boolean",
  "lockTimeEntries": "string",
  "round": {
    "round": "string",
    "minutes": "string"
  },
  "projectFavorite": "boolean",
  "canSeeTimeSheet": "boolean",
  "projectPickerSpecialFilter": "boolean",
  "forceProjects": "boolean",
  "forceTasks": "boolean",
  "forceTags": "boolean",
  "forceDescription": "boolean",
  "onlyAdminsSeeAllTimeEntries": "boolean",
  "onlyAdminsSeePublicProjectsEntries": "boolean"
}

UserChangesPasswordRequest

oldPassword: string
newPassword: string
newPasswordRepeated: string
Example
{
  "oldPassword": "string",
  "newPassword": "string",
  "newPasswordRepeated": "string"
}

UserDto

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 (int32)",
        "currency": "string"
      },
      "membershipStatus": "string",
      "membershipType": "string",
      "target": "string",
      "userId": "string"
    }
  ],
  "name": "string",
  "profilePicture": "string",
  "settings": {
    "dateFormat": "string",
    "isCompactViewOn": "boolean",
    "longRunning": "boolean",
    "sendNewsletter": "boolean",
    "summaryReportSettings": {
      "group": "string",
      "subgroup": "string"
    },
    "timeFormat": "string",
    "timeTrackingManual": "boolean",
    "timeZone": "string",
    "weekStart": "string",
    "weeklyUpdates": "boolean"
  },
  "status": "string"
}

UserGroupDto

id: string
name: string
userIds: string[]
string
workspaceId: string
Example
{
  "id": "string",
  "name": "string",
  "userIds": [
    "string"
  ],
  "workspaceId": "string"
}

UserSettingsDto

dateFormat: string
isCompactViewOn: boolean
longRunning: boolean
sendNewsletter: boolean
summaryReportSettings: SummaryReportSettingsDto
timeFormat: string
timeTrackingManual: boolean
timeZone: string
weekStart: string MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
weeklyUpdates: boolean
Example
{
  "dateFormat": "string",
  "isCompactViewOn": "boolean",
  "longRunning": "boolean",
  "sendNewsletter": "boolean",
  "summaryReportSettings": {
    "group": "string",
    "subgroup": "string"
  },
  "timeFormat": "string",
  "timeTrackingManual": "boolean",
  "timeZone": "string",
  "weekStart": "string",
  "weeklyUpdates": "boolean"
}

WorkspaceDto

hourlyRate: HourlyRateDto
id: string
imageUrl: string
memberships: MembershipDto
MembershipDto
name: string
workspaceSettings: WorkspaceSettingsDto
Example
{
  "hourlyRate": {
    "amount": "integer (int32)",
    "currency": "string"
  },
  "id": "string",
  "imageUrl": "string",
  "memberships": [
    {
      "hourlyRate": {
        "amount": "integer (int32)",
        "currency": "string"
      },
      "membershipStatus": "string",
      "membershipType": "string",
      "target": "string",
      "userId": "string"
    }
  ],
  "name": "string",
  "workspaceSettings": {
    "canSeeTimeSheet": "boolean",
    "defaultBillableProjects": "boolean",
    "forceDescription": "boolean",
    "forceProjects": "boolean",
    "forceTags": "boolean",
    "forceTasks": "boolean",
    "lockTimeEntries": "string",
    "onlyAdminsCreateProject": "boolean",
    "onlyAdminsSeeAllTimeEntries": "boolean",
    "onlyAdminsSeeBillableRates": "boolean",
    "onlyAdminsSeeDashboard": "boolean",
    "onlyAdminsSeePublicProjectsEntries": "boolean",
    "projectFavorites": "boolean",
    "projectPickerSpecialFilter": "boolean",
    "round": {
      "minutes": "string",
      "round": "string"
    },
    "timeRoundingInReports": "boolean"
  }
}

WorkspaceSettingsDto

canSeeTimeSheet: boolean
defaultBillableProjects: boolean
forceDescription: boolean
forceProjects: boolean
forceTags: boolean
forceTasks: boolean
lockTimeEntries: string
onlyAdminsCreateProject: boolean
onlyAdminsSeeAllTimeEntries: boolean
onlyAdminsSeeBillableRates: boolean
onlyAdminsSeeDashboard: boolean
onlyAdminsSeePublicProjectsEntries: boolean
projectFavorites: boolean
projectPickerSpecialFilter: boolean
round: Round
timeRoundingInReports: boolean
Example
{
  "canSeeTimeSheet": "boolean",
  "defaultBillableProjects": "boolean",
  "forceDescription": "boolean",
  "forceProjects": "boolean",
  "forceTags": "boolean",
  "forceTasks": "boolean",
  "lockTimeEntries": "string",
  "onlyAdminsCreateProject": "boolean",
  "onlyAdminsSeeAllTimeEntries": "boolean",
  "onlyAdminsSeeBillableRates": "boolean",
  "onlyAdminsSeeDashboard": "boolean",
  "onlyAdminsSeePublicProjectsEntries": "boolean",
  "projectFavorites": "boolean",
  "projectPickerSpecialFilter": "boolean",
  "round": {
    "minutes": "string",
    "round": "string"
  },
  "timeRoundingInReports": "boolean"
}