All API access is over HTTPS, and accessed from the api.plan.toggl.com/api/v5
domain. All data is received as JSON.
All dates are returned in ISO 8601 format:
YYYY-MM-DD
2014-12-31
All dates with time are returned in ISO 8601 format:
YYYY-MM-DDTHH:MM:SSZ
2014-12-31T11:59:59+01:00
All timestamps are returned in ISO 8601 format:
YYYY-MM-DDTHH:MM:SS.000Z
2014-12-31T11:59:59.999+01:00
Many API methods take optional parameters. For GET requests, any parameters not specified as a segment in the path can be passed as an HTTP query string parameter:
$ curl "https://api.plan.toggl.com/api/v5/1/projects?filter=active" -i
In this example, the workspace identity value is provided for the :workspace parameter in the path while :filter is passed in the query string.
For POST, PUT, and DELETE requests, parameters not included in the URL:
$ curl "https://api.plan.toggl.com/api/v5/me" -i --data "name=Elmo"
There are four possible types of client errors on API calls that receive request bodies:
Sending invalid fields will result in a 422 Unprocessable Entity response.
HTTP/1.1 422 Unprocessable Entity
{
"errors": {
"email": ["format is invalid"],
"avatar_color": ["is not included in the list"]
}
}
Sending a request to interact with an unexistent resource will result in a 404 Resource Not Found response.
HTTP/1.1 404 Resource Not Found
Sending a request to interact with a resource that is beyond the scope of your current user will result in a 403 Forbidden response.
HTTP/1.1 403 Forbidden
Sending a request with invalid Authorization header will result in a 401 Unauthorized response.
HTTP/1.1 401 Unauthorized
API v5 uses HTTP redirection where appropriate. Clients should assume that any request may result in a redirection. Receiving an HTTP redirection is not an error and clients should follow that redirect. Redirect responses will have a Location header field which contains the URI of the resource to which the client should repeat the requests.
Status Code | Description |
---|---|
301 | Permanent redirection. The URI you used to make the request has been superseded by the one specified in the Location header field. This and all future requests to this resource should be directed to the new URI. |
302, 307 | Temporary redirection. The request should be repeated verbatim to the URI specified in the Location header field but clients should continue to use the original URI for future requests. |
Other redirection status codes may be used in accordance with the HTTP 1.1 spec.
Where possible, API v5 strives to use appropriate HTTP verbs for each action.
Verb | Description |
---|---|
HEAD | Can be issued against any resource to get just the HTTP header info. |
GET | Used for retrieving resources. |
POST | Used for creating resources, or performing custom actions (such as merging a pull request). |
PUT | Used for updating resources. For PUT requests with no body attribute, be sure to set the Content-Length header to zero. |
DELETE | Used for deleting resources. |
Authentication is implemented by OAuth 2.0. Requests that require authentication will return 404 Not Found, instead of 403 Forbidden, in some places. This is to prevent the accidental leakage of private data to unauthorized users.
OAuth2 Token (sent in a header)
$ curl "https://api.plan.toggl.com/api/v5" -H "Authorization: Bearer OAUTH-TOKEN"
OAuth2 Token (sent as a parameter)
$ curl "https://api.plan.toggl.com/api/v5/?access_token=OAUTH-TOKEN"
The API supports Cross Origin Resource Sharing (CORS) for AJAX requests.
Here’s a sample request sent from a browser hitting http://example.com:
$ curl -i "https://api.plan.toggl.com/api/v5" -H "Origin: http://example.com"
Here’s a sample request for a browser hitting http://example.com:
$ curl -i "https://api.plan.toggl.com/api/v5" -H "Origin: http://example.com"
HTTP/1.1 200 OK
Access-Control-Allow-Origin: http://example.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Max-Age: 1728000
Access-Control-Allow-Credentials: true
We use the OAuth 2.0 protocol for authentication and authorization. Currently only two authorization grants (protocol flows) are supported: Authorization Code Grant and Resource Owner Password Credentials Grant. We only allow the access to our API on behalf of a Toggl Plan user.
All developers need to register their application before getting started. A registered OAuth application is assigned a unique Client ID (API Key) and Client Secret (API Secret). The Client Secret should not be shared.
For registering your application sign in on developers site with your Toggl Plan credentials and create new application.
This grant type is useful when you implement your own web application that you want to be integreted with Toggl Plan. It lets the app request authorization in a user’s account without getting their password.
This is a description of the OAuth2 flow from 3rd party web sites.
Redirect users to request access
GET https://plan.toggl.com/oauth/login
Parameters
Name | Type | Description |
---|---|---|
response_type | string | Required. Must be set to “code”. |
client_id | string | Required. The client ID (App key) you received from Toggl Plan when you registered. |
redirect_uri | string | The URL in your app where users will be sent after authorization. See details below about redirect urls. |
state | string | An unguessable random string. It is used to protect against cross-site request forgery attacks. |
Toggl Plan redirects back to your site
If the user accepts your request, Toggl Plan redirects back to your site with a temporary code in a code parameter as well as the state you provided in the previous step in a state parameter. If the states don’t match, the request has been created by a third party and the process should be aborted.
Exchange this for an access token:
POST https://api.plan.toggl.com/api/v5/authenticate/token
Authorization: Basic Base64(CLIENT-ID:CLIENT-SECRET)
Example using curl:
curl https://api.plan.toggl.com/api/v5/authenticate/token -d grant_type=authorization_code -d code=random_code_returned_previously1234 -d client_id=random_id_123 --user random_id_123:really_secret_secret
Parameters
Name | Type | Description |
---|---|---|
grant_type | string | Required. Must be set to “authorization_code”. |
code | string | Required. The code you received as a response to Step 1. |
client_id | string | Required. The client ID (App key) you received from Toggl Plan when you registered. |
Response
{
"access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a",
"refresh_token": "2c6912e7710c838347ae178b4ae72e16c7e42f292",
"expires_in": 3600,
"token_type": "bearer"
}
Use the access token to access the API
The access token allows you to make requests to the API on a behalf of a user.
GET https://api.plan.toggl.com/api/v5/me?access_token=...
You can pass the token in the query params like shown above, but a cleaner approach is to include it in the Authorization header
Authorization: Bearer OAUTH-TOKEN
For example, in curl you can set the Authorization header like this:
curl "https://api.plan.toggl.com/api/v5/me" -H "Authorization: Bearer OAUTH-TOKEN"
This grant type should only be used when you implement a server-to-server app. Your app MUST NOT be available to the public. The grant type is useful for scripting (import, export, gathering statistics, etc.). It lets the app request an access token directly using a user’s account credentials. It should be your own Toggl Plan user account.
Make a token request with grant_type=password:
POST https://api.plan.toggl.com/api/v5/authenticate/token
Authorization: Basic Base64(CLIENT-ID:CLIENT-SECRET)
Example using curl:
curl https://api.plan.toggl.com/api/v5/authenticate/token -d grant_type=password -d username=<username> -d password=<password> --user <client-id>:<client-secret>
Parameters
Name | Type | Description |
---|---|---|
grant_type | string | Required. Must be set to “password”. |
username | string | Required. The email of the Toggl Plan user. |
password | string | Required. The password of the Toggl Plan user. |
Response
{
"access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a",
"refresh_token": "2c6912e7710c838347ae178b4ae72e16c7e42f292",
"expires_in": 3600,
"token_type": "bearer"
}
Use the access token obtained to access the API:
GET https://api.plan.toggl.com/api/v5/me
Authorization: Bearer ACCESS-TOKEN
It’s possible to refresh an expired access token with its refresh token, which has a longer time span. The refresh token can only be used once.
Exchange the refresh token for an access token:
POST https://api.plan.toggl.com/api/v5/authenticate/token
Authorization: Basic Base64(CLIENT-ID:CLIENT-SECRET)
Parameters
Name | Type | Description |
---|---|---|
grant_type | string | Required. Must be set to “refresh_token”. |
refresh_token | string | Required. The refresh token issued to the client with the access token. |
Response
{
"access_token": "e72e16c7e42123123123adgasdas7710c838347ae178b4a",
"refresh_token": "2c6912e7710c838347ae178b4ne72e16c7e42f292",
"expires_in": 3600,
"token_type": "bearer"
}
The redirect_uri parameter is optional. If left out, Toggl Plan will redirect users to the callback URL configured in the OAuth Application settings. If provided, the redirect URL must exactly match the callback URL.
GET /me
GET https://api.plan.toggl.com/api/v5/me
Content-Type: application/json
Authorization: Bearer <token>
Content-Type: application/json; charset=utf-8
{
"id": 1,
"name": "Elmo",
"email": "elmo@muppets.com",
"color": "#db9a9a",
"color_id": 1,
"initials": "el",
"picture_url": "/avatars/1/large/picture.png",
"has_picture": true,
"workspaces": [],
"invitations": [],
"project_ids": [],
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
PUT /me
PUT https://api.plan.toggl.com/api/v5/me
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "Elmo",
"initials": "el"
}
Content-Type: application/json
{
"id": 1,
"name": "Elmo",
"email": "elmo@muppets.com",
"color": "#db9a9a",
"color_id": 1,
"initials": "el",
"picture_url": "/avatars/1/large/picture.png",
"has_picture": true,
"workspaces": [],
"invitations": [],
"project_ids": [],
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
POST /1/dummy_users
POST https://api.plan.toggl.com/api/v5/1/dummy_users
New member can be added using name. It has no link with an existing user.
To link a new member with an existing user you have to create an invitation.
1
Workspace identity
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "Elmo",
"role": "regular
}
Content-Type: application/json
{
"id": 1,
"name": "Elmo",
"email": "elmo@muppets.com",
"color": "#db9a9a",
"color_id": 1,
"initials": "el",
"invitation": {},
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
PUT /1/dummy_users/1
PUT https://api.plan.toggl.com/api/v5/1/dummy_users/1
1
Workspace identity
1
Dummy User identity.
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "Elmo",
"initials": "el",
"color_id": 33
}
Content-Type: application/json
{
"id": 1,
"name": "Elmo",
"email": "elmo@muppets.com",
"color": "#db9a9a",
"color_id": 1,
"initials": "el",
"invitation": {},
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
GET /1/members
GET https://api.plan.toggl.com/api/v5/1/members
1
Workspace identity
Content-Type: application/json
Authorization: Bearer <token>
Content-Type: application/json
[
{
"role": "regular",
"active": true,
"color": "#db9a9a",
"color_id": 1,
"hours_per_work_day": "3.5",
"minutes_per_work_day": 210,
"dummy": false,
"picture_url": "/avatars/1/large/picture.png",
"has_picture": true,
"invitation": {},
"activated_at": "null",
"deactivated_at": "null",
"id": 1,
"name": "Elmo",
"email": "elmo@muppets.com",
"initials": "el",
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
]
GET /1/members/1
GET https://api.plan.toggl.com/api/v5/1/members/1
1
Workspace identity
1
User identity.
Content-Type: application/json
Authorization: Bearer <token>
Content-Type: application/json
{
"role": "regular",
"active": true,
"color": "#db9a9a",
"color_id": 1,
"hours_per_work_day": "3.5",
"minutes_per_work_day": 210,
"dummy": false,
"picture_url": "/avatars/1/large/picture.png",
"has_picture": true,
"invitation": {},
"activated_at": "null",
"deactivated_at": "null",
"id": 1,
"name": "Elmo",
"email": "elmo@muppets.com",
"initials": "el",
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
PUT /1/members/1
PUT https://api.plan.toggl.com/api/v5/1/members/1
1
Workspace identity
1
User identity.
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "Elmo",
"initials": "el",
"color": "#a1711e",
"weight": 1
}
Content-Type: application/json
{
"role": "regular",
"active": true,
"color": "#db9a9a",
"color_id": 1,
"hours_per_work_day": "3.5",
"minutes_per_work_day": 210,
"dummy": false,
"picture_url": "/avatars/1/large/picture.png",
"has_picture": true,
"invitation": {},
"activated_at": "null",
"deactivated_at": "null",
"id": 1,
"name": "Elmo",
"email": "elmo@muppets.com",
"initials": "el",
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
DELETE /1/members/2
DELETE https://api.plan.toggl.com/api/v5/1/members/2
1
Workspace identity
2
User identity.
Content-Type: application/json
Authorization: Bearer <token>
Content-Type: application/json
GET /1/tasks/timeline?since=&until=&users=&project=&tasks=&group=&tags=
GET https://api.plan.toggl.com/api/v5/1/tasks/timeline?since=&until=&users=&project=&tasks=&group=&tags=
1
Workspace identity
timeline
Named filter for tasks. Allowed values are backlog or timeline. you can also put no filter, which will return any.
Choices: timeline
backlog
Only tasks after this date will be returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Only tasks before this date will be returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Filters tasks by users. Only available when filter is set to timeline.
Filters tasks by projects.
Filters tasks by a list of ids.
Filters tasks by group.
Filters tasks by a list of tags.
Authorization: Bearer <token>
Content-Type: application/json
[
{
"id": 1,
"name": "Act like muppet",
"notes": "must try hard",
"start_date": "2016-01-01",
"end_date": "2016-01-01",
"start_time": "12:00",
"end_time": "13:00",
"color": "#db9a9a",
"color_id": 1,
"estimated_hours": "3.5",
"estimated_minutes": "210",
"status": "done",
"workspace_members": [
1
],
"folder_id": 1,
"tag_ids": [
1
],
"position": 1,
"weight": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
]
POST /1/tasks
POST https://api.plan.toggl.com/api/v5/1/tasks
1
Workspace identity
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "Lunch with Abby",
"start_date": "2014-01-01",
"end_date": "2014-01-01",
"start_time": "12:00",
"end_time": "13:00",
"color": "#a8ced7",
"estimated_hours": 0,
"pinned": false,
"status": "done",
"workspace_members": [
1
],
"project_id": 1
}
Content-Type: application/json
{
"id": 1,
"name": "Act like muppet",
"notes": "must try hard",
"start_date": "2016-01-01",
"end_date": "2016-01-01",
"start_time": "12:00",
"end_time": "13:00",
"color": "#db9a9a",
"color_id": 1,
"estimated_hours": "3.5",
"estimated_minutes": "210",
"status": "done",
"workspace_members": [
1
],
"folder_id": 1,
"tag_ids": [
1
],
"position": 1,
"weight": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
GET /1/tasks/1
GET https://api.plan.toggl.com/api/v5/1/tasks/1
1
Workspace identity
1
Task identity.
Authorization: Bearer <token>
Content-Type: application/json
{
"id": 1,
"name": "Act like muppet",
"notes": "must try hard",
"start_date": "2016-01-01",
"end_date": "2016-01-01",
"start_time": "12:00",
"end_time": "13:00",
"color": "#db9a9a",
"color_id": 1,
"estimated_hours": "3.5",
"estimated_minutes": "210",
"status": "done",
"workspace_members": [
1
],
"folder_id": 1,
"tag_ids": [
1
],
"position": 1,
"weight": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
PUT /1/tasks/1
PUT https://api.plan.toggl.com/api/v5/1/tasks/1
1
Workspace identity
1
Task identity.
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "Lunch with Abby",
"start_date": "2014-01-01",
"end_date": "2014-01-01",
"start_time": "12:00",
"end_time": "13:00",
"color": "#a8ced7",
"estimated_hours": 0,
"pinned": false,
"status": "done",
"workspace_members": [
1
],
"project_id": 1
}
Content-Type: application/json
{
"id": 1,
"name": "Act like muppet",
"notes": "must try hard",
"start_date": "2016-01-01",
"end_date": "2016-01-01",
"start_time": "12:00",
"end_time": "13:00",
"color": "#db9a9a",
"color_id": 1,
"estimated_hours": "3.5",
"estimated_minutes": "210",
"status": "done",
"workspace_members": [
1
],
"folder_id": 1,
"tag_ids": [
1
],
"position": 1,
"weight": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
DELETE /1/tasks/2
DELETE https://api.plan.toggl.com/api/v5/1/tasks/2
1
Workspace identity
2
Task identity.
Authorization: Bearer <token>
Content-Type: application/json
GET /1/milestones?since=&until=&projects=&groups=
GET https://api.plan.toggl.com/api/v5/1/milestones?since=&until=&projects=&groups=
1
Workspace identity
Only tasks after this date will be returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Only tasks before this date will be returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Filters milestones by projects.
Filters milestones by groups.
Authorization: Bearer <token>
Content-Type: application/json
[
{
"id": 1,
"name": "End of season 1",
"color": "#db9a9a",
"color_id": 1,
"date": "2016-12-01",
"done": false,
"holiday": false,
"group_id": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
]
POST /1/milestones
POST https://api.plan.toggl.com/api/v5/1/milestones
1
Workspace identity
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "End of season 1",
"date": "2014-01-01",
"done": false,
"holiday": false,
"group_id": null
}
Content-Type: application/json
{
"id": 1,
"name": "End of season 1",
"color": "#db9a9a",
"color_id": 1,
"date": "2016-12-01",
"done": false,
"holiday": false,
"group_id": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
GET /1/milestones/1
GET https://api.plan.toggl.com/api/v5/1/milestones/1
1
Workspace identity
1
Milestone identity.
Content-Type: application/json
Authorization: Bearer <token>
Content-Type: application/json
{
"id": 1,
"name": "End of season 1",
"color": "#db9a9a",
"color_id": 1,
"date": "2016-12-01",
"done": false,
"holiday": false,
"group_id": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
PUT /1/milestones/1
PUT https://api.plan.toggl.com/api/v5/1/milestones/1
1
Workspace identity
1
Milestone identity.
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "End of season 1",
"date": "2014-01-01",
"done": false,
"holiday": false,
"group_id": 1
}
Content-Type: application/json
{
"id": 1,
"name": "End of season 1",
"color": "#db9a9a",
"color_id": 1,
"date": "2016-12-01",
"done": false,
"holiday": false,
"group_id": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
DELETE /1/milestones/2
DELETE https://api.plan.toggl.com/api/v5/1/milestones/2
1
Workspace identity
2
Milestone identity.
Authorization: Bearer <token>
Content-Type: application/json
GET /1/projects
GET https://api.plan.toggl.com/api/v5/1/projects
1
Workspace identity
Authorization: Bearer <token>
Content-Type: application/json
[
{
"id": 1,
"name": "Quality time",
"archived": false,
"tags": [
null
],
"color": "#db9a9a",
"color_id": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
]
POST /1/projects
POST https://api.plan.toggl.com/api/v5/1/projects
1
Workspace identity
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "Quality time",
"color": "#8392ae"
}
Content-Type: application/json
{
"id": 1,
"name": "Quality time",
"archived": false,
"tags": [
null
],
"color": "#db9a9a",
"color_id": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
GET /1/projects/1
GET https://api.plan.toggl.com/api/v5/1/projects/1
1
Workspace identity
1
Project identity.
Authorization: Bearer <token>
Content-Type: application/json
{
"id": 1,
"name": "Quality time",
"archived": false,
"tags": [
null
],
"color": "#db9a9a",
"color_id": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
PUT /1/projects/1
PUT https://api.plan.toggl.com/api/v5/1/projects/1
1
Workspace identity
1
Project identity.
Authorization: Bearer <token>
{
"name": "Quality time",
"color": "#8392ae"
}
Content-Type: application/json
{
"id": 1,
"name": "Quality time",
"archived": false,
"tags": [
null
],
"color": "#db9a9a",
"color_id": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
DELETE /1/projects/2
DELETE https://api.plan.toggl.com/api/v5/1/projects/2
1
Workspace identity
2
Project identity.
Authorization: Bearer <token>
Content-Type: application/json
GET /1/groups
GET https://api.plan.toggl.com/api/v5/1/groups
1
Workspace identity
Authorization: Bearer <token>
Content-Type: application/json
[
{
"id": 1,
"name": "Muppets",
"memberships": [
{
"id": 1,
"user_id": 1,
"position": 1,
"weight": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
],
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
]
POST /1/groups
POST https://api.plan.toggl.com/api/v5/1/groups
1
Workspace identity
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "Muppets",
"user_ids": [
1,
2,
3
]
}
Content-Type: application/json
{
"id": 1,
"name": "Muppets",
"memberships": [
{
"id": 1,
"user_id": 1,
"position": 1,
"weight": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
],
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
GET /1/groups/1
GET https://api.plan.toggl.com/api/v5/1/groups/1
1
Workspace identity
1
Group identity.
Authorization: Bearer <token>
Content-Type: application/json
{
"id": 1,
"name": "Muppets",
"memberships": [
{
"id": 1,
"user_id": 1,
"position": 1,
"weight": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
],
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
PUT /1/groups/1
PUT https://api.plan.toggl.com/api/v5/1/groups/1
1
Workspace identity
1
Group identity.
Authorization: Bearer <token>
{
"name": "Muppets",
"user_ids": [
1,
2,
3
]
}
Content-Type: application/json
{
"id": 1,
"name": "Muppets",
"memberships": [
{
"id": 1,
"user_id": 1,
"position": 1,
"weight": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
],
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
DELETE /1/groups/2
DELETE https://api.plan.toggl.com/api/v5/1/groups/2
1
Workspace identity
2
Group identity.
Authorization: Bearer <token>
Content-Type: application/json
GET /1/groups/1/memberships
GET https://api.plan.toggl.com/api/v5/1/groups/1/memberships
1
Workspace identity
1
Group identity.
Authorization: Bearer <token>
Content-Type: application/json
[
{
"id": 1,
"user_id": 1,
"position": 1,
"weight": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
]
POST /1/groups/1/memberships
POST https://api.plan.toggl.com/api/v5/1/groups/1/memberships
1
Workspace identity
1
Group identity.
Content-Type: application/json
Authorization: Bearer <token>
{
"user_id": 1
}
Content-Type: application/json
{
"id": 1,
"user_id": 1,
"position": 1,
"weight": 1,
"created_at": "2016-01-01T00:00:00.00Z+00:00",
"updated_at": "2016-01-01T00:00:00.00Z+00:00"
}
DELETE /1/groups/1/memberships/2
DELETE https://api.plan.toggl.com/api/v5/1/groups/1/memberships/2
1
Workspace identity
1
Group identity.
2
Membership identity.
Authorization: Bearer <token>
Content-Type: application/json