Runrun.it API Documentation

How to authenticate to use the API

Every request to the API, should be sent with the authentication information, the app_key and user_token sent on the HEADER like:

    curl "https://runrun.it/api/v1.0/users" -X GET \
      -H "App-Key: f9c650c98eeb28e345e0a38a184d20cb" \
      -H "User-Token: roBknmkPI0ALmwkRuC1q"

Whenever you send the incorrect information on app_key or user_token, the response is going to be 401 Unauthorized. The user_token is per user and when you use this, you will perform actions on behalf of that user, on Runrun.it, it will appear that the user have done the action

How to obtain authentication information to use the API

API access is a premium feature only available for customers of certain paid accounts. To see which plans have API access check here. However developers with ideas for apps taking advantage of Runrun.it are always welcome to contact help@runrun.it about setting up a test account with API access.

  1. Go to your profile on Runrun.it Your User Profile Menu
  2. Then click on Generate Generate application key
  3. Your app_key will be displayed with the user_token Get application key and user token

Data format

All responses will be valid JSON. Requests should be in JSON as well (although for most actions form-encoded data is accepted as well).

All dates will be in ISO 8601 format. The time-zones if specified, will take in account when doing date operations. Another thing to be mentioned is that you need to urlencode your dates if it does contains special characters as + to specify time-zones.

Monitoring

All calls to the API are recorded. Excessive use of the API will result in the offending app_key being revoked to ensure quality of service for other users. If you anticipate a need to issue a large number of API of calls please enter in contact with support beforehand.

Contacting API Support

If you have any trouble using the API, you can send an email to help@runrun.it.

Checklist Items

GET

/api/v1.0/checklists/:checklist_id/items

List checklist items

Request

Route

GET /api/v1.0/checklists/1/items

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/checklists/1/items" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 120

Body

[
  {
    "id": 1,
    "description": "Paper clips",
    "position": 1,
    "checked": false,
    "checker_id": null,
    "checked_at": null,
    "checklist_id": 1
  }
]
POST

/api/v1.0/checklists/:checklist_id/items

Create a checklist item

Create a new item on a given checklist

Request

Route

POST /api/v1.0/checklists/1/items

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "checklist_item": {
    "description": "Buy more pencils"
  }
}

cURL

curl "https://runrun.it/api/v1.0/checklists/1/items" -d '{"checklist_item":{"description":"Buy more pencils"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 123

Body

{
  "id": 1,
  "description": "Buy more pencils",
  "position": 1,
  "checked": false,
  "checker_id": null,
  "checked_at": null,
  "checklist_id": 1
}
GET

/api/v1.0/checklists/:checklist_id/items/:id

Show a checklist item

Request

Route

GET /api/v1.0/checklists/1/items/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/checklists/1/items/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 118

Body

{
  "id": 1,
  "description": "Paper clips",
  "position": 1,
  "checked": false,
  "checker_id": null,
  "checked_at": null,
  "checklist_id": 1
}
PUT

/api/v1.0/checklists/:checklist_id/items/:id

Update a checklist item

Update a item on a given checklist

Request

Route

PUT /api/v1.0/checklists/1/items/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "checklist_item": {
    "description": "Buy beer"
  }
}

cURL

curl "https://runrun.it/api/v1.0/checklists/1/items/1" -d '{"checklist_item":{"description":"Buy beer"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 115

Body

{
  "id": 1,
  "description": "Buy beer",
  "position": 1,
  "checked": false,
  "checker_id": null,
  "checked_at": null,
  "checklist_id": 1
}
DELETE

/api/v1.0/checklists/:checklist_id/items/:id

Destroy a checklist item

Request

Route

DELETE /api/v1.0/checklists/1/items/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/checklists/1/items/1" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Checklists

GET

/api/v1.0/tasks/:task_id/checklist

Show a checklist from a task

Request

Route

GET /api/v1.0/tasks/1/checklist

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/checklist" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 95

Body

{
  "id": 1,
  "title": "Office Supplies",
  "creator_id": "coyote-26",
  "task_id": 1,
  "checklist_item_ids": [

  ]
}
PUT

/api/v1.0/tasks/:task_id/checklist

Update a checklist from a task

Request

Route

PUT /api/v1.0/tasks/1/checklist

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "checklist": {
    "title": "Kitchen supplies"
  }
}

cURL

curl "https://runrun.it/api/v1.0/tasks/1/checklist" -d '{"checklist":{"title":"Kitchen supplies"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 96

Body

{
  "id": 1,
  "title": "Kitchen supplies",
  "creator_id": "coyote-30",
  "task_id": 1,
  "checklist_item_ids": [

  ]
}
DELETE

/api/v1.0/tasks/:task_id/checklist

Destroy a checklist from a task

Request

Route

DELETE /api/v1.0/tasks/1/checklist

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/checklist" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

GET

/api/v1.0/task_templates/:task_template_id/checklist

Show a checklist from a task template

Request

Route

GET /api/v1.0/task_templates/3/checklist

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/task_templates/3/checklist" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 113

Body

{
  "id": 1,
  "title": "Office Supplies Template",
  "creator_id": "coyote-42",
  "task_template_id": 3,
  "checklist_item_ids": [

  ]
}
PUT

/api/v1.0/task_templates/:task_template_id/checklist

Update a checklist from a task template

Request

Route

PUT /api/v1.0/task_templates/5/checklist

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "checklist": {
    "title": "Kitchen supplies"
  }
}

cURL

curl "https://runrun.it/api/v1.0/task_templates/5/checklist" -d '{"checklist":{"title":"Kitchen supplies"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 105

Body

{
  "id": 1,
  "title": "Kitchen supplies",
  "creator_id": "coyote-46",
  "task_template_id": 5,
  "checklist_item_ids": [

  ]
}
DELETE

/api/v1.0/task_templates/:task_template_id/checklist

Destroy a checklist from a task_template

Request

Route

DELETE /api/v1.0/task_templates/7/checklist

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/task_templates/7/checklist" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Clients

GET

/api/v1.0/clients

List all clients

Request

Route

GET /api/v1.0/clients

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/clients" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2

Body

[

]
GET

/api/v1.0/clients/:id

Show a Client

Request

Route

GET /api/v1.0/clients/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/clients/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id Client ID integer
name Client's name string
custom_field Custom field string
is_visible Client is currently visible to be used boolean
budgeted_hours_month Budgeted hours per month integer
budgeted_cost_month Budgeted cost per month decimal
project_groups [DEPRECATED] Project groups array
projects_count Number of projects in the client integer
time_worked Time (in seconds) worked in the client integer
time_pending_backlog Time (in seconds) pending in the client integer
time_pending_queued Time (in seconds) pending in the client integer
time_pending Time (in seconds) pending in the client integer
time_total Total seconds spent in the client integer
time_progress Progress of time worked on the client float
cost_worked Cost spent on the client float
cost_pending Cost pending in the client float
cost_total Total cost of the client float
activities_6_days_ago Time (in seconds) worked in the client 6 days ago integer
activities_5_days_ago Time (in seconds) worked in the client 5 days ago integer
activities_4_days_ago Time (in seconds) worked in the client 4 days ago integer
activities_3_days_ago Time (in seconds) worked in the client 3 days ago integer
activities_2_days_ago Time (in seconds) worked in the client 2 days ago integer
activities_1_days_ago Time (in seconds) worked in the client 1 days ago integer
activities_0_days_ago Time (in seconds) worked in the client today integer
activities Total time (in seconds) worked 7 days ago integer

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 491

Body

{
  "id": 1,
  "name": "Test client 31",
  "custom_field": null,
  "is_visible": true,
  "budgeted_hours_month": 0,
  "budgeted_cost_month": 0.0,
  "project_groups": [

  ],
  "projects_count": 0,
  "time_worked": 0,
  "time_pending_backlog": 0,
  "time_pending_queued": 0,
  "time_pending": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "project_ids": [

  ]
}
POST

/api/v1.0/clients/export

Export

Request

Route

POST /api/v1.0/clients/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "xlsx"
}

cURL

curl "https://runrun.it/api/v1.0/clients/export" -d '{"format_type":"xlsx"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/clients/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "csv"
}

cURL

curl "https://runrun.it/api/v1.0/clients/export" -d '{"format_type":"csv"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/clients/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "bad_format"
}

cURL

curl "https://runrun.it/api/v1.0/clients/export" -d '{"format_type":"bad_format"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

400

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 
POST

/api/v1.0/clients

Create a Client

Parameters

Name Description type
clients[name] required

Client's name

string

clients[is_visible] required

Client is currently visible to be used

boolean

clients[budgeted_hours_month] required

Total hours budgeted per month for this client's projects

integer

clients[budgeted_cost_month] required

Total cost budgeted per month for hours spend on this client's projects

decimal

Request

Route

POST /api/v1.0/clients

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "client": {
    "budgeted_cost_month": "0.0",
    "budgeted_hours_month": 0,
    "is_visible": true,
    "name": "Test client 32"
  }
}

cURL

curl "https://runrun.it/api/v1.0/clients" -d '{"client":{"budgeted_cost_month":"0.0","budgeted_hours_month":0,"is_visible":true,"name":"Test client 32"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 491

Body

{
  "id": 1,
  "name": "Test client 32",
  "custom_field": null,
  "is_visible": true,
  "budgeted_hours_month": 0,
  "budgeted_cost_month": 0.0,
  "project_groups": [

  ],
  "projects_count": 0,
  "time_worked": 0,
  "time_pending_backlog": 0,
  "time_pending_queued": 0,
  "time_pending": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "project_ids": [

  ]
}
PUT

/api/v1.0/clients/:id

Update a Client

Parameters

Name Description type
clients[name] required

Client's name

string

clients[is_visible] required

Client is currently visible to be used

boolean

clients[budgeted_hours_month] required

Total hours budgeted per month for this client's projects

integer

clients[budgeted_cost_month] required

Total cost budgeted per month for hours spend on this client's projects

decimal

Request

Route

PUT /api/v1.0/clients/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "client": {
    "name": "Widgets Inc"
  }
}

cURL

curl "https://runrun.it/api/v1.0/clients/1" -d '{"client":{"name":"Widgets Inc"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 488

Body

{
  "id": 1,
  "name": "Widgets Inc",
  "custom_field": null,
  "is_visible": true,
  "budgeted_hours_month": 0,
  "budgeted_cost_month": 0.0,
  "project_groups": [

  ],
  "projects_count": 0,
  "time_worked": 0,
  "time_pending_backlog": 0,
  "time_pending_queued": 0,
  "time_pending": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "project_ids": [

  ]
}

Comments

GET

/api/v1.0/tasks/:task_id/comments

List comments on a task

Request

Route

GET /api/v1.0/tasks/1/comments

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/comments" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1001

Body

[
  {
    "id": 2,
    "user_id": null,
    "is_system_message": true,
    "text": "System text",
    "commenter_name": null,
    "children_count": 0,
    "commentable_id": 1,
    "commentable_type": "Task",
    "created_at": "2018-11-16T14:06:21-02:00",
    "edited_at": null,
    "deleted_at": null,
    "thread_id": 2,
    "quoted_comment_id": null,
    "quoted_comment_text": null,
    "quoted_comment_user_id": null,
    "quoted_comment_user_name": null,
    "task_id": 1,
    "comment_id": null,
    "team_id": null,
    "enterprise_id": null,
    "document_id": null,
    "is_legacy": false,
    "media": null,
    "documents": [

    ]
  },
  {
    "id": 1,
    "user_id": "coyote-110",
    "is_system_message": false,
    "text": "Comment text",
    "commenter_name": "Coyote 110",
    "children_count": 0,
    "commentable_id": 1,
    "commentable_type": "Task",
    "created_at": "2018-11-16T14:06:21-02:00",
    "edited_at": null,
    "deleted_at": null,
    "thread_id": 1,
    "quoted_comment_id": null,
    "quoted_comment_text": null,
    "quoted_comment_user_id": null,
    "quoted_comment_user_name": null,
    "task_id": 1,
    "comment_id": null,
    "team_id": null,
    "enterprise_id": null,
    "document_id": null,
    "is_legacy": false,
    "media": null,
    "documents": [

    ]
  }
]
GET

/api/v1.0/comments/:id

Show a specific comment

Request

Route

GET /api/v1.0/comments/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/comments/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 508

Body

{
  "id": 1,
  "user_id": "coyote-114",
  "is_system_message": false,
  "text": "Comment text",
  "commenter_name": "Coyote 114",
  "children_count": 0,
  "commentable_id": 1,
  "commentable_type": "Task",
  "created_at": "2018-11-16T14:07:23-02:00",
  "edited_at": null,
  "deleted_at": null,
  "thread_id": 1,
  "quoted_comment_id": null,
  "quoted_comment_text": null,
  "quoted_comment_user_id": null,
  "quoted_comment_user_name": null,
  "task_id": 1,
  "comment_id": null,
  "team_id": null,
  "enterprise_id": null,
  "document_id": null,
  "is_legacy": false,
  "media": null,
  "documents": [

  ]
}
POST

/api/v1.0/comments

Create a new comment

Request

Route

POST /api/v1.0/comments

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_id": 1,
  "text": "Comment text"
}

cURL

curl "https://runrun.it/api/v1.0/comments" -d '{"task_id":1,"text":"Comment text"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 508

Body

{
  "id": 1,
  "user_id": "coyote-118",
  "is_system_message": false,
  "text": "Comment text",
  "commenter_name": "Coyote 118",
  "children_count": 0,
  "commentable_id": 1,
  "commentable_type": "Task",
  "created_at": "2018-11-16T14:08:18-02:00",
  "edited_at": null,
  "deleted_at": null,
  "thread_id": 1,
  "quoted_comment_id": null,
  "quoted_comment_text": null,
  "quoted_comment_user_id": null,
  "quoted_comment_user_name": null,
  "task_id": 1,
  "comment_id": null,
  "team_id": null,
  "enterprise_id": null,
  "document_id": null,
  "is_legacy": false,
  "media": null,
  "documents": [

  ]
}
POST

/api/v1.0/comments

Create a new comment

Request

Route

POST /api/v1.0/comments

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_id": 1,
  "text": "Comment text"
}

cURL

curl "https://runrun.it/api/v1.0/comments" -d '{"task_id":1,"text":"Comment text"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 508

Body

{
  "id": 1,
  "user_id": "coyote-118",
  "is_system_message": false,
  "text": "Comment text",
  "commenter_name": "Coyote 118",
  "children_count": 0,
  "commentable_id": 1,
  "commentable_type": "Task",
  "created_at": "2018-11-16T14:08:18-02:00",
  "edited_at": null,
  "deleted_at": null,
  "thread_id": 1,
  "quoted_comment_id": null,
  "quoted_comment_text": null,
  "quoted_comment_user_id": null,
  "quoted_comment_user_name": null,
  "task_id": 1,
  "comment_id": null,
  "team_id": null,
  "enterprise_id": null,
  "document_id": null,
  "is_legacy": false,
  "media": null,
  "documents": [

  ]
}
PUT

/api/v1.0/comments/:id

Update a comment

Request

Route

PUT /api/v1.0/comments/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "text": "New text"
}

cURL

curl "https://runrun.it/api/v1.0/comments/1" -d '{"text":"New text"}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 527

Body

{
  "id": 1,
  "user_id": "coyote-121",
  "is_system_message": false,
  "text": "New text",
  "commenter_name": "Coyote 121",
  "children_count": 0,
  "commentable_id": 1,
  "commentable_type": "Task",
  "created_at": "2018-11-16T14:09:08-02:00",
  "edited_at": "2018-11-16T14:09:08-02:00",
  "deleted_at": null,
  "thread_id": 1,
  "quoted_comment_id": null,
  "quoted_comment_text": null,
  "quoted_comment_user_id": null,
  "quoted_comment_user_name": null,
  "task_id": 1,
  "comment_id": null,
  "team_id": null,
  "enterprise_id": null,
  "document_id": null,
  "is_legacy": false,
  "media": null,
  "documents": [

  ]
}
DELETE

/api/v1.0/comments/:id

Destroy a comment

Request

Route

DELETE /api/v1.0/comments/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/comments/1" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

DashboardWidgets

GET

/api/v1.0/dashboards/:dashboard_id/dashboard_widgets

List all widgets for the current dashboard

List all widgets for the current dashboard

Request

Route

GET /api/v1.0/dashboards/1/dashboard_widgets

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/dashboards/1/dashboard_widgets" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 499

Body

[
  {
    "id": 1,
    "dashboard_id": 1,
    "name": "Widget 1",
    "kind": "project_indicator",
    "user_id": "coyote-125",
    "valid": true,
    "aggregation": {
    },
    "restriction": [

    ],
    "conditions": [

    ],
    "grouping": [

    ],
    "sorting": [

    ],
    "parameters": {
    },
    "refreshed_at": null,
    "grid_x": 1,
    "grid_y": 1,
    "grid_w": 1,
    "grid_h": 1,
    "data_url": "http://example.org/api/projects?dashboard_widget_id=1",
    "data_expanded_url": "/company/projects?dashboard_widget_id=1&expand=true",
    "data_export_url": "http://example.org/api/projects/export?dashboard_widget_id=1&expand=true"
  }
]
GET

/api/v1.0/dashboard_widgets/:id

List a choosen widget for the current dashboard

List a choosen widget for the current dashboard

Request

Route

GET /api/v1.0/dashboard_widgets/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/dashboard_widgets/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 461

Body

{
  "id": 1,
  "dashboard_id": 1,
  "name": "Widget 2",
  "kind": "project_indicator",
  "user_id": "coyote-126",
  "valid": true,
  "aggregation": {
  },
  "restriction": [

  ],
  "conditions": [

  ],
  "grouping": [

  ],
  "sorting": [

  ],
  "parameters": {
  },
  "refreshed_at": null,
  "grid_x": 2,
  "grid_y": 2,
  "grid_w": 1,
  "grid_h": 1,
  "data_url": "/api/projects?dashboard_widget_id=1",
  "data_expanded_url": "/company/projects?dashboard_widget_id=1&expand=true",
  "data_export_url": "/api/projects/export?dashboard_widget_id=1&expand=true"
}
GET

/api/v1.0/dashboard_widgets/:id

List a choosen widget for the current dashboard with the report's url

List a choosen widget for the current dashboard with the report's url

Request

Route

GET /api/v1.0/dashboard_widgets/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/dashboard_widgets/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 545

Body

{
  "id": 1,
  "dashboard_id": 1,
  "name": "Widget 3",
  "kind": "task_indicator",
  "user_id": "coyote-127",
  "valid": true,
  "aggregation": {
  },
  "restriction": [

  ],
  "conditions": [

  ],
  "grouping": [

  ],
  "sorting": [

  ],
  "parameters": {
  },
  "refreshed_at": null,
  "grid_x": 3,
  "grid_y": 3,
  "grid_w": 1,
  "grid_h": 1,
  "data_url": "/api/tasks?bypass_status_default=true&dashboard_widget_id=1&include_backlog=true",
  "data_expanded_url": "/company/tasks?dashboard_widget_id=1&expand=true",
  "data_export_url": "/api/tasks/export?bypass_status_default=true&dashboard_widget_id=1&expand=true&include_backlog=true"
}
POST

/api/v1.0/dashboards/:dashboard_id/dashboard_widgets

Create a widget

Create a new widget for the given dashboard

Request

Route

POST /api/v1.0/dashboards/1/dashboard_widgets

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "widget": {
    "name": "New Widget",
    "kind": "project_indicator",
    "grid_x": 1,
    "grid_y": 1,
    "grid_w": 1,
    "grid_h": 1
  }
}

cURL

curl "https://runrun.it/api/v1.0/dashboards/1/dashboard_widgets" -d '{"widget":{"name":"New Widget","kind":"project_indicator","grid_x":1,"grid_y":1,"grid_w":1,"grid_h":1}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 463

Body

{
  "id": 2,
  "dashboard_id": 1,
  "name": "New Widget",
  "kind": "project_indicator",
  "user_id": "coyote-128",
  "valid": true,
  "aggregation": {
  },
  "restriction": [

  ],
  "conditions": [

  ],
  "grouping": [

  ],
  "sorting": [

  ],
  "parameters": {
  },
  "refreshed_at": null,
  "grid_x": 1,
  "grid_y": 1,
  "grid_w": 1,
  "grid_h": 1,
  "data_url": "/api/projects?dashboard_widget_id=2",
  "data_expanded_url": "/company/projects?dashboard_widget_id=2&expand=true",
  "data_export_url": "/api/projects/export?dashboard_widget_id=2&expand=true"
}
PUT

/api/v1.0/dashboard_widgets/:id

Update a dashboard

Update a dashboard for the current_user

Request

Route

PUT /api/v1.0/dashboard_widgets/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "widget": {
    "name": "New Widget",
    "kind": "project_indicator",
    "grid_x": 1,
    "grid_y": 1,
    "grid_w": 1,
    "grid_h": 1
  }
}

cURL

curl "https://runrun.it/api/v1.0/dashboard_widgets/1" -d '{"widget":{"name":"New Widget","kind":"project_indicator","grid_x":1,"grid_y":1,"grid_w":1,"grid_h":1}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 463

Body

{
  "id": 1,
  "dashboard_id": 1,
  "name": "New Widget",
  "kind": "project_indicator",
  "user_id": "coyote-129",
  "valid": true,
  "aggregation": {
  },
  "restriction": [

  ],
  "conditions": [

  ],
  "grouping": [

  ],
  "sorting": [

  ],
  "parameters": {
  },
  "refreshed_at": null,
  "grid_x": 5,
  "grid_y": 5,
  "grid_w": 1,
  "grid_h": 1,
  "data_url": "/api/projects?dashboard_widget_id=1",
  "data_expanded_url": "/company/projects?dashboard_widget_id=1&expand=true",
  "data_export_url": "/api/projects/export?dashboard_widget_id=1&expand=true"
}
DELETE

/api/v1.0/dashboard_widgets/:id

Destroy a widget

Delete a selected widget

Request

Route

DELETE /api/v1.0/dashboard_widgets/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/dashboard_widgets/1" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

PUT

/api/v1.0/dashboards/:dashboard_id/dashboard_widgets/reorder

Reorder all widgets for the selected dashboard

Reorder all widgets for the selected dashboard

Request

Route

PUT /api/v1.0/dashboards/1/dashboard_widgets/reorder

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "dashboard_widgets": [
    {
      "created_at": "2018-11-16T14:11:20-02:00",
      "dashboard_id": 1,
      "grid_h": 1,
      "grid_w": 1,
      "grid_x": 3,
      "grid_y": 1,
      "id": 1,
      "updated_at": "2018-11-16T14:11:20-02:00",
      "widget_id": 1
    },
    {
      "created_at": "2018-11-16T14:11:20-02:00",
      "dashboard_id": 1,
      "grid_h": 1,
      "grid_w": 1,
      "grid_x": 2,
      "grid_y": 1,
      "id": 2,
      "updated_at": "2018-11-16T14:11:20-02:00",
      "widget_id": 2
    },
    {
      "created_at": "2018-11-16T14:11:20-02:00",
      "dashboard_id": 1,
      "grid_h": 1,
      "grid_w": 1,
      "grid_x": 1,
      "grid_y": 1,
      "id": 3,
      "updated_at": "2018-11-16T14:11:20-02:00",
      "widget_id": 3
    }
  ]
}

cURL

curl "https://runrun.it/api/v1.0/dashboards/1/dashboard_widgets/reorder" -d '{"dashboard_widgets":[{"created_at":"2018-11-16T14:11:20-02:00","dashboard_id":1,"grid_h":1,"grid_w":1,"grid_x":3,"grid_y":1,"id":1,"updated_at":"2018-11-16T14:11:20-02:00","widget_id":1},{"created_at":"2018-11-16T14:11:20-02:00","dashboard_id":1,"grid_h":1,"grid_w":1,"grid_x":2,"grid_y":1,"id":2,"updated_at":"2018-11-16T14:11:20-02:00","widget_id":2},{"created_at":"2018-11-16T14:11:20-02:00","dashboard_id":1,"grid_h":1,"grid_w":1,"grid_x":1,"grid_y":1,"id":3,"updated_at":"2018-11-16T14:11:20-02:00","widget_id":3}]}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1387

Body

[
  {
    "id": 1,
    "dashboard_id": 1,
    "name": "Widget 7",
    "kind": "project_indicator",
    "user_id": "coyote-131",
    "valid": true,
    "aggregation": {
    },
    "restriction": [

    ],
    "conditions": [

    ],
    "grouping": [

    ],
    "sorting": [

    ],
    "parameters": {
    },
    "refreshed_at": null,
    "grid_x": 3,
    "grid_y": 1,
    "grid_w": 1,
    "grid_h": 1,
    "data_url": "/api/projects?dashboard_widget_id=1",
    "data_expanded_url": "/company/projects?dashboard_widget_id=1&expand=true",
    "data_export_url": "/api/projects/export?dashboard_widget_id=1&expand=true"
  },
  {
    "id": 2,
    "dashboard_id": 1,
    "name": "Widget 8",
    "kind": "project_indicator",
    "user_id": "coyote-131",
    "valid": true,
    "aggregation": {
    },
    "restriction": [

    ],
    "conditions": [

    ],
    "grouping": [

    ],
    "sorting": [

    ],
    "parameters": {
    },
    "refreshed_at": null,
    "grid_x": 2,
    "grid_y": 1,
    "grid_w": 1,
    "grid_h": 1,
    "data_url": "/api/projects?dashboard_widget_id=2",
    "data_expanded_url": "/company/projects?dashboard_widget_id=2&expand=true",
    "data_export_url": "/api/projects/export?dashboard_widget_id=2&expand=true"
  },
  {
    "id": 3,
    "dashboard_id": 1,
    "name": "Widget 9",
    "kind": "project_indicator",
    "user_id": "coyote-131",
    "valid": true,
    "aggregation": {
    },
    "restriction": [

    ],
    "conditions": [

    ],
    "grouping": [

    ],
    "sorting": [

    ],
    "parameters": {
    },
    "refreshed_at": null,
    "grid_x": 1,
    "grid_y": 1,
    "grid_w": 1,
    "grid_h": 1,
    "data_url": "/api/projects?dashboard_widget_id=3",
    "data_expanded_url": "/company/projects?dashboard_widget_id=3&expand=true",
    "data_export_url": "/api/projects/export?dashboard_widget_id=3&expand=true"
  }
]

Dashboards

GET

/api/v1.0/dashboards

List all dashboards for the current_user

List all dashboards for the active user

Request

Route

GET /api/v1.0/dashboards

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/dashboards" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 54

Body

[
  {
    "id": 1,
    "name": "Dashboard 8",
    "user_id": "coyote-132"
  }
]
GET

/api/v1.0/dashboards/:id

List a choosen dashboard for the current_user

List a choosen dashboard for the active user

Request

Route

GET /api/v1.0/dashboards/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/dashboards/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 52

Body

{
  "id": 1,
  "name": "Dashboard 9",
  "user_id": "coyote-133"
}
POST

/api/v1.0/dashboards

Create a dashboard

Create a new dashboard for the current_user

Request

Route

POST /api/v1.0/dashboards

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "dashboard": {
    "name": "New Dashboard"
  }
}

cURL

curl "https://runrun.it/api/v1.0/dashboards" -d '{"dashboard":{"name":"New Dashboard"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 54

Body

{
  "id": 2,
  "name": "New Dashboard",
  "user_id": "coyote-135"
}
PUT

/api/v1.0/dashboards/:id

Update a dashboard

Update a dashboard for the current_user

Request

Route

PUT /api/v1.0/dashboards/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "dashboard": {
    "name": "Another Dashboard"
  }
}

cURL

curl "https://runrun.it/api/v1.0/dashboards/1" -d '{"dashboard":{"name":"Another Dashboard"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 58

Body

{
  "id": 1,
  "name": "Another Dashboard",
  "user_id": "coyote-136"
}
DELETE

/api/v1.0/dashboards/:id

Destroy a dashboard

Delete a selected dashboard

Request

Route

DELETE /api/v1.0/dashboards/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/dashboards/1" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

501

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Demanders

GET

/api/v1.0/users/:user_id/demanders

List all demanders of user

Return a list of all demanders of user. Demanders of a user are users that the user can assign tasks to.

Parameters

Name Description type
user_id required

User's ID

string

Request

Route

GET /api/v1.0/users/coyote-140/demanders

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/users/coyote-140/demanders" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id User's ID string
name User's full name string
email User's email string
avatar_url User's chosen profile photo url
avatar_large_url User's chosen profile photo url
super_compact_view *internal usage* boolean
compact_side_menu *internal usage* boolean
cost_hour Current user cost per hour decimal
is_master User is an administrator boolean
is_manager User is a manager boolean
is_auditor User is an auditor boolean
can_create_client_project_and_task_types User has permission to create client, projects and task types boolean
time_zone IANA Time Zone Database zone name string
position Job position in company string
on_vacation User currently on vacation boolean
birthday User's birthday date
phone User phone string
gender User gender string
marital_status User marital status string
in_company_since Joining date in company date
is_certified Whether the user has passed Runrun.it certification boolean
language User preference language string
alt_id Constant size ID (internal use only) string
oid Constant size ID (internal use only) string
see_archived_clients_and_projects Admin decides either to see or not archived clients and projects boolean
budget_manager Can edit project extra costs boolean
shifts User shifts array
is_mensurable Can process RR Ratings? boolean
time_tracking_mode Current Time tracking mode, 'smart' for automatic tracking time based on shift or 'manual' string
blocked_by_time_worked_at When the user is blocked for being out of the acceptable worked time defined by the company datetime
demanders_count Demanders count integer
partners_count Partners count integer
password_updated_at Last time user password was updated datetime
password_expired_at Time when the user password was considered expired datetime

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 3639

Body

[
  {
    "id": "coyote-139",
    "name": "Coyote 139",
    "email": "coyote139@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-93/coyote-139/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-93/coyote-139/regular.png",
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": false,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": false,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "13fb48dd5e78f739e47d7cb3a51b931a",
    "oid": "92a6f5b72",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 1,
    "partners_count": 2,
    "password_updated_at": "2018-11-16T14:12:49-02:00",
    "password_expired_at": null
  },
  {
    "id": "coyote-140",
    "name": "Coyote 140",
    "email": "coyote140@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-93/coyote-140/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-93/coyote-140/regular.png",
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": false,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": false,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "237aaf58fe0861a12dd61133d03d041c",
    "oid": "dbfa7092b",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 2,
    "partners_count": 1,
    "password_updated_at": "2018-11-16T14:12:49-02:00",
    "password_expired_at": null
  }
]
POST

/api/v1.0/users/:user_id/demanders

Adds a demander to a user

Adds the user represented by demander_id as demander of the user_id

Parameters

Name Description type
user_id required

User's ID

string

Request

Route

POST /api/v1.0/users/coyote-143/demanders

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "demander_id": "coyote-144"
}

cURL

curl "https://runrun.it/api/v1.0/users/coyote-143/demanders" -d '{"demander_id":"coyote-144"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 
POST

/api/v1.0/users/:user_id/demanders/replace

Replace a user partners list

Parameters

Name Description type
user_id required

User's ID

string

Request

Route

POST /api/v1.0/users/coyote-147/demanders/replace

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "ids": "coyote-148,coyote-149"
}

cURL

curl "https://runrun.it/api/v1.0/users/coyote-147/demanders/replace" -d '{"ids":"coyote-148,coyote-149"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 
DELETE

/api/v1.0/users/:user_id/demanders/:id

Destroy a demander of a user

Parameters

Name Description type
user_id required

User's ID

string

Request

Route

DELETE /api/v1.0/users/coyote-152/demanders/coyote-151

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/users/coyote-152/demanders/coyote-151" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Description

GET

/api/v1.0/descriptions

Query Multiple Descriptions

Parameters

Name Description
task_template_ids

IDs of Task Templates if belongs

project_ids

IDs of Projects if belongs

Request

Route

GET /api/v1.0/descriptions?project_ids=1%2C2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

project_ids=1,2

cURL

curl "https://runrun.it/api/v1.0/descriptions?project_ids=1%2C2" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 98

Body

[
  {
    "project_id": 1,
    "description": "Cool Project"
  },
  {
    "project_id": 2,
    "description": "Expensive Project"
  }
]
GET

/api/v1.0/descriptions

Query Task Status Descriptions

Parameters

Name Description
task_template_ids

IDs of Task Templates if belongs

project_ids

IDs of Projects if belongs

Request

Route

GET /api/v1.0/descriptions?task_status_ids=3%2C4

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

task_status_ids=3,4

cURL

curl "https://runrun.it/api/v1.0/descriptions?task_status_ids=3%2C4" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 123

Body

[
  {
    "task_status_id": 3,
    "description": "Awesome Task Status"
  },
  {
    "task_status_id": 4,
    "description": "Another awesome Task Status"
  }
]
GET

/api/v1.0/descriptions

Query Single Project Description

Parameters

Name Description type
task_template_id

ID of Task Template if belongs to one

integer

project_id

ID of Project if belongs to one

integer

Request

Route

GET /api/v1.0/descriptions?project_id=1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

project_id=1

cURL

curl "https://runrun.it/api/v1.0/descriptions?project_id=1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 45

Body

{
  "project_id": 1,
  "description": "Cool Project"
}
GET

/api/v1.0/descriptions

Query Single Task Template Description

Parameters

Name Description type
task_template_id

ID of Task Template if belongs to one

integer

project_id

ID of Project if belongs to one

integer

Request

Route

GET /api/v1.0/descriptions?task_template_id=15

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

task_template_id=15

cURL

curl "https://runrun.it/api/v1.0/descriptions?task_template_id=15" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 52

Body

{
  "task_template_id": 15,
  "description": "Awesome Task"
}
GET

/api/v1.0/descriptions

Query Single Task Status Description

Parameters

Name Description type
task_template_id

ID of Task Template if belongs to one

integer

project_id

ID of Project if belongs to one

integer

Request

Route

GET /api/v1.0/descriptions?task_status_id=3

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

task_status_id=3

cURL

curl "https://runrun.it/api/v1.0/descriptions?task_status_id=3" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 56

Body

{
  "task_status_id": 3,
  "description": "Awesome Task Status"
}
PUT

/api/v1.0/descriptions

Update Project Description

Parameters

Name Description type
description[description] required

The text of the description

text

Request

Route

PUT /api/v1.0/descriptions

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "description": {
    "project_id": 1,
    "description": "Another Awesome Project Description"
  }
}

cURL

curl "https://runrun.it/api/v1.0/descriptions" -d '{"description":{"project_id":1,"description":"Another Awesome Project Description"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 68

Body

{
  "project_id": 1,
  "description": "Another Awesome Project Description"
}
PUT

/api/v1.0/descriptions

Update Task Template Description

Parameters

Name Description type
description[description] required

The text of the description

text

Request

Route

PUT /api/v1.0/descriptions

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "description": {
    "task_template_id": 16,
    "description": "Another Awesome Project Description"
  }
}

cURL

curl "https://runrun.it/api/v1.0/descriptions" -d '{"description":{"task_template_id":16,"description":"Another Awesome Project Description"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 75

Body

{
  "task_template_id": 16,
  "description": "Another Awesome Project Description"
}
PUT

/api/v1.0/descriptions

Update Task Status Description

Parameters

Name Description type
description[description] required

The text of the description

text

Request

Route

PUT /api/v1.0/descriptions

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "description": {
    "task_status_id": 3,
    "description": "Cool Task Status Description"
  }
}

cURL

curl "https://runrun.it/api/v1.0/descriptions" -d '{"description":{"task_status_id":3,"description":"Cool Task Status Description"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 65

Body

{
  "task_status_id": 3,
  "description": "Cool Task Status Description"
}

Documents

GET

/api/v1.0/tasks/:task_id/documents

List all documents uploaded to a task

Only includes files which have been successfully uploaded. Any files still in the process of being uploaded will not be returned

Request

Route

GET /api/v1.0/tasks/1/documents

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/documents" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 438

Body

[
  {
    "id": 1,
    "data_file_name": "awesome_report_6.txt",
    "data_file_size": 10,
    "data_content_type": "text/plain",
    "data_updated_at": "2018-11-16T14:16:16-02:00",
    "file_name": "awesome_report_6.txt",
    "file_size": 10,
    "file_content_type": "text/plain",
    "file_extension": "txt",
    "uploaded_at": "2018-11-16T14:16:15-02:00",
    "transfered": true,
    "uploader_id": "coyote-169",
    "uploader_name": "Coyote 169",
    "attachable_id": 1,
    "attachable_type": "Task",
    "attachable_name": "Bla"
  }
]
GET

/api/v1.0/documents/:id

Show a document

Request

Route

GET /api/v1.0/documents/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/documents/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id ID of document integer
data_file_name [Deprecated] use file_name string
data_file_size [Deprecated] use file_size integer
data_content_type [Deprecated] use file_content_type string
data_updated_at [Deprecated] use uploaded_at datetime
file_name Name of the document string
file_size Size in bytes integer
file_content_type MIME type of file string
file_extension Document's extension string
uploaded_at Datetime when file was uploaded datetime
transfered Whether the file has be successfully uploaded to the cloud boolean
uploader_id ID of the user who uploaded the file string
uploader_name Name of the user who uploaded the file string
attachable_id To which resource id this document belongs to string
attachable_type To which resource type this document belongs to string
attachable_name Name of the attachable string

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 436

Body

{
  "id": 1,
  "data_file_name": "awesome_report_7.txt",
  "data_file_size": 10,
  "data_content_type": "text/plain",
  "data_updated_at": "2018-11-16T14:16:32-02:00",
  "file_name": "awesome_report_7.txt",
  "file_size": 10,
  "file_content_type": "text/plain",
  "file_extension": "txt",
  "uploaded_at": "2018-11-16T14:16:32-02:00",
  "transfered": true,
  "uploader_id": "coyote-171",
  "uploader_name": "Coyote 171",
  "attachable_id": 1,
  "attachable_type": "Task",
  "attachable_name": "Bla"
}
GET

/api/v1.0/documents/:id/download

Download a document

Request

Route

GET /api/v1.0/documents/1/download

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/documents/1/download" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

302

Headers

Content-Type: text/html; charset=utf-8
Content-Length: 316

Body

<html><body>You are being <a href="https://s3.amazonaws.com/runrunit_dev/data/1/awesome_report_8.txt?AWSAccessKeyId=ABCDEFGHIJKLMNOPQRST&amp;Expires=1542388606&amp;Signature=NJrOAzy4oepfSNVvNn2NomG%2BKb4%3D&amp;response-content-disposition=inline&amp;response-content-type=text%2Fplain">redirected</a>.</body></html>
DELETE

/api/v1.0/documents/:id

Destroy a document

Deleting a document is only possible by the original creator and may only be an option for a limited amount of time. Deleting a document will also delete the file from the cloud storage. It is NOT recoverable.

Request

Route

DELETE /api/v1.0/documents/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/documents/1" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

GET

/api/v1.0/documents/download_zip

Download multiple documents as zip

This endpoint will generate a temporary key and redirect you to the download service's URL.

Parameters

Name Description
ids

List of document's ids to download

Request

Route

GET /api/v1.0/documents/download_zip?ids=3%2C2%2C1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

ids=3,2,1

cURL

curl "https://runrun.it/api/v1.0/documents/download_zip?ids=3%2C2%2C1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

302

Headers

Content-Type: text/html; charset=utf-8
Content-Length: 174

Body

<html><body>You are being <a href="https://runrunit-zipper-stg.herokuapp.com?ref=28bd530c-264a-4c20-84aa-7248bb23e49b&amp;downloadas=anexos.zip">redirected</a>.</body></html>

Enterprises

GET

/api/v1.0/enterprises/:id

Show details for requesting user's enterprise

Request

Route

GET /api/v1.0/enterprises/acme-125

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/enterprises/acme-125" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id ID of enterprise string
name Name of enterprise string
phone Enterprise phone string
country Enterprise country string
company_size Enterprise size string
company_sector Enterprise sector string
attachments_sum Total size of all stored documents in bytes float
remaining_attachment_space Total space remaining for documents in bytes float
logo_url Logo of enterprise string
alt_id Constant size ID (internal use only) string
oid Constant size ID (internal use only) string
support_phone Call this number to contact Runrun.it string
trial_days_left Days left to the date of trial period end, if it's a trial plan date
disabled_reason Why account is disabled string
disabled_at Disabled date datetime
currency_symbol Currency symbol (ISO 4217) string
created_at Enterprise creation date datetime
master_user_id ID of the account creator string
using_temporary_edition Is enterprise using a temporary edition in subscription? boolean
temporary_edition_expiration Date when the temporary edition will expire datetime
signup_completed True if signup completed boolean
time_zone Enterprise time zone string
should_see_promo_modal True if Enterprise should see promo modal (internal use only) boolean
example_data Example data boolean
plan[id] ID of plan integer
plan[name_pt] Plan name in Portuguese string
plan[name_en] Plan name in English string
plan[max_storage] Total available size for documents in bytes float
plan[max_users] Total number of users which can be active integer
plan[is_free] Is a free plan? boolean
plan[is_trial] Is a trial plan? boolean
plan[can_use_mobile] Can use mobile? boolean

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1445

Body

{
  "id": "acme-125",
  "name": "Acme 125",
  "phone": null,
  "country": null,
  "company_size": "666",
  "company_sector": "technology",
  "attachments_sum": 0.0,
  "remaining_attachment_space": 524288000.0,
  "logo_url": "/logos/small/missing.png",
  "alt_id": "3f8b0478f28788784d915eaac9306828",
  "oid": "49537adb9",
  "support_phone": "+55 11 2769-9713",
  "trial_days_left": null,
  "disabled_reason": null,
  "disabled_at": null,
  "currency_symbol": "USD",
  "created_at": "2018-11-16T14:18:12-02:00",
  "master_user_id": null,
  "using_temporary_edition": true,
  "temporary_edition_expiration": null,
  "signup_completed": true,
  "time_zone": "America/Sao_Paulo",
  "should_see_promo_modal": null,
  "example_data": [

  ],
  "plan": {
    "id": 1,
    "name_pt": "Plano 5",
    "name_en": "Plan 5",
    "max_storage": 524288000.0,
    "max_users": 5,
    "is_free": true,
    "is_trial": false,
    "can_use_mobile": false
  },
  "configuration": {
    "allow_other_involved_estimate_effort_in_tasks": false,
    "permitted_user_inviters": "everybody",
    "new_users_mutual_partners_by_default": true,
    "use_project_group_level": false,
    "use_project_sub_group_level": false,
    "only_admins_can_delete_tasks": false,
    "only_partners_can_be_mentioned": false,
    "only_partners_can_be_added_as_followers": false,
    "use_bulletin": true,
    "is_rating_public": true,
    "extra_users": null,
    "comment_document_change_window": 900,
    "use_block_user_by_time_worked_min": false,
    "use_block_user_by_time_worked_max": false,
    "block_user_by_time_worked_percentage_min": 50,
    "block_user_by_time_worked_percentage_max": 100,
    "use_advanced_password_policy": false
  }
}
GET

/api/v1.0/enterprises/:id

Show details for requesting user's enterprise

Request

Route

GET /api/v1.0/enterprises/acme-125

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/enterprises/acme-125" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id ID of enterprise string
name Name of enterprise string
phone Enterprise phone string
country Enterprise country string
company_size Enterprise size string
company_sector Enterprise sector string
attachments_sum Total size of all stored documents in bytes float
remaining_attachment_space Total space remaining for documents in bytes float
logo_url Logo of enterprise string
alt_id Constant size ID (internal use only) string
oid Constant size ID (internal use only) string
support_phone Call this number to contact Runrun.it string
trial_days_left Days left to the date of trial period end, if it's a trial plan date
disabled_reason Why account is disabled string
disabled_at Disabled date datetime
currency_symbol Currency symbol (ISO 4217) string
created_at Enterprise creation date datetime
master_user_id ID of the account creator string
using_temporary_edition Is enterprise using a temporary edition in subscription? boolean
temporary_edition_expiration Date when the temporary edition will expire datetime
signup_completed True if signup completed boolean
time_zone Enterprise time zone string
should_see_promo_modal True if Enterprise should see promo modal (internal use only) boolean
example_data Example data boolean
plan[id] ID of plan integer
plan[name_pt] Plan name in Portuguese string
plan[name_en] Plan name in English string
plan[max_storage] Total available size for documents in bytes float
plan[max_users] Total number of users which can be active integer
plan[is_free] Is a free plan? boolean
plan[is_trial] Is a trial plan? boolean
plan[can_use_mobile] Can use mobile? boolean

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1445

Body

{
  "id": "acme-125",
  "name": "Acme 125",
  "phone": null,
  "country": null,
  "company_size": "666",
  "company_sector": "technology",
  "attachments_sum": 0.0,
  "remaining_attachment_space": 524288000.0,
  "logo_url": "/logos/small/missing.png",
  "alt_id": "3f8b0478f28788784d915eaac9306828",
  "oid": "49537adb9",
  "support_phone": "+55 11 2769-9713",
  "trial_days_left": null,
  "disabled_reason": null,
  "disabled_at": null,
  "currency_symbol": "USD",
  "created_at": "2018-11-16T14:18:12-02:00",
  "master_user_id": null,
  "using_temporary_edition": true,
  "temporary_edition_expiration": null,
  "signup_completed": true,
  "time_zone": "America/Sao_Paulo",
  "should_see_promo_modal": null,
  "example_data": [

  ],
  "plan": {
    "id": 1,
    "name_pt": "Plano 5",
    "name_en": "Plan 5",
    "max_storage": 524288000.0,
    "max_users": 5,
    "is_free": true,
    "is_trial": false,
    "can_use_mobile": false
  },
  "configuration": {
    "allow_other_involved_estimate_effort_in_tasks": false,
    "permitted_user_inviters": "everybody",
    "new_users_mutual_partners_by_default": true,
    "use_project_group_level": false,
    "use_project_sub_group_level": false,
    "only_admins_can_delete_tasks": false,
    "only_partners_can_be_mentioned": false,
    "only_partners_can_be_added_as_followers": false,
    "use_bulletin": true,
    "is_rating_public": true,
    "extra_users": null,
    "comment_document_change_window": 900,
    "use_block_user_by_time_worked_min": false,
    "use_block_user_by_time_worked_max": false,
    "block_user_by_time_worked_percentage_min": 50,
    "block_user_by_time_worked_percentage_max": 100,
    "use_advanced_password_policy": false
  }
}
PUT

/api/v1.0/enterprises/:id

Update enterprise

Parameters

Name Description type
enterprise[id] required

ID of enterprise

string

Request

Route

PUT /api/v1.0/enterprises/acme-126

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "enterprise": {
    "name": "New name"
  }
}

cURL

curl "https://runrun.it/api/v1.0/enterprises/acme-126" -d '{"enterprise":{"name":"New name"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1445

Body

{
  "id": "acme-126",
  "name": "New name",
  "phone": null,
  "country": null,
  "company_size": "666",
  "company_sector": "technology",
  "attachments_sum": 0.0,
  "remaining_attachment_space": 524288000.0,
  "logo_url": "/logos/small/missing.png",
  "alt_id": "b3551eea24945249f7d6eb6e2d7590ac",
  "oid": "49537adb9",
  "support_phone": "+55 11 2769-9713",
  "trial_days_left": null,
  "disabled_reason": null,
  "disabled_at": null,
  "currency_symbol": "USD",
  "created_at": "2018-11-16T14:18:25-02:00",
  "master_user_id": null,
  "using_temporary_edition": true,
  "temporary_edition_expiration": null,
  "signup_completed": true,
  "time_zone": "America/Sao_Paulo",
  "should_see_promo_modal": null,
  "example_data": [

  ],
  "plan": {
    "id": 1,
    "name_pt": "Plano 5",
    "name_en": "Plan 5",
    "max_storage": 524288000.0,
    "max_users": 5,
    "is_free": true,
    "is_trial": false,
    "can_use_mobile": false
  },
  "configuration": {
    "allow_other_involved_estimate_effort_in_tasks": false,
    "permitted_user_inviters": "everybody",
    "new_users_mutual_partners_by_default": true,
    "use_project_group_level": false,
    "use_project_sub_group_level": false,
    "only_admins_can_delete_tasks": false,
    "only_partners_can_be_mentioned": false,
    "only_partners_can_be_added_as_followers": false,
    "use_bulletin": true,
    "is_rating_public": true,
    "extra_users": null,
    "comment_document_change_window": 900,
    "use_block_user_by_time_worked_min": false,
    "use_block_user_by_time_worked_max": false,
    "block_user_by_time_worked_percentage_min": 50,
    "block_user_by_time_worked_percentage_max": 100,
    "use_advanced_password_policy": false
  }
}

Estimates

GET

/api/v1.0/tasks/:task_id/estimates

Show all the estimatives for a task.

"Show the all the estimatives for a task."

Request

Route

GET /api/v1.0/tasks/1/estimates

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/estimates" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 205

Body

[
  {
    "id": 2,
    "task_id": 1,
    "work_seconds": 3600,
    "created_at": "2018-11-16T14:18:55-02:00",
    "is_standard": false
  },
  {
    "id": 3,
    "task_id": 1,
    "work_seconds": 7200,
    "created_at": "2018-11-16T14:18:55-02:00",
    "is_standard": false
  }
]
POST

/api/v1.0/tasks/:task_id/estimates

Create a estimative for a task.

"Create a estimate for a task."

Request

Route

POST /api/v1.0/tasks/1/estimates

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "estimate": {
    "task_id": 1,
    "work_seconds": "9000"
  }
}

cURL

curl "https://runrun.it/api/v1.0/tasks/1/estimates" -d '{"estimate":{"task_id":1,"work_seconds":"9000"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 101

Body

{
  "id": 3,
  "task_id": 1,
  "work_seconds": 9000,
  "created_at": "2018-11-16T14:19:11-02:00",
  "is_standard": false
}

Filters

GET

/api/v1.0/projects/filters

List all projects filters

List all projects filters that the current user can view.

Request

Route

GET /api/v1.0/projects/filters

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/projects/filters" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1722

Body

[
  {
    "id": "all",
    "name": "all",
    "status": "all",
    "restriction": [

    ],
    "conditions": [

    ],
    "sorting": [
      {
        "column_id": "activities",
        "dir": "desc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "activities",
      "dir": "desc",
      "valid": true
    },
    "valid": true,
    "default": true,
    "preset": true
  },
  {
    "id": "open",
    "name": "open",
    "status": "open",
    "restriction": [
      {
        "column_id": "open",
        "operator": "is_true",
        "value": null,
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "open",
        "operator": "is_true",
        "value": null,
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "activities",
        "dir": "desc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "activities",
      "dir": "desc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": true
  },
  {
    "id": "closed",
    "name": "closed",
    "status": "closed",
    "restriction": [
      {
        "column_id": "open",
        "operator": "is_false",
        "value": null,
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "open",
        "operator": "is_false",
        "value": null,
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "close_date",
        "dir": "desc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "close_date",
      "dir": "desc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": true
  },
  {
    "id": 1,
    "name": "Amazing Projects",
    "status": "all",
    "restriction": [
      {
        "column_id": "open",
        "operator": "is_false",
        "value": null,
        "valid": true
      },
      {
        "column_id": "desired_date",
        "operator": "up_to",
        "value": "2016-10-02",
        "valid": true
      },
      {
        "column_id": "time_total",
        "operator": "greater_than",
        "value": 1000,
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "open",
        "operator": "is_false",
        "value": null,
        "valid": true
      },
      {
        "column_id": "desired_date",
        "operator": "up_to",
        "value": "2016-10-02",
        "valid": true
      },
      {
        "column_id": "time_total",
        "operator": "greater_than",
        "value": 1000,
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "desired_date",
        "dir": "desc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "desired_date",
      "dir": "desc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": false
  }
]
GET

/api/v1.0/projects/filters/:id

Show a project filter

Request

Route

GET /api/v1.0/projects/filters/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/projects/filters/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 713

Body

{
  "id": 1,
  "name": "Amazing Projects",
  "status": "all",
  "restriction": [
    {
      "column_id": "open",
      "operator": "is_false",
      "value": null,
      "valid": true
    },
    {
      "column_id": "desired_date",
      "operator": "up_to",
      "value": "2016-10-02",
      "valid": true
    },
    {
      "column_id": "time_total",
      "operator": "greater_than",
      "value": 1000,
      "valid": true
    }
  ],
  "conditions": [
    {
      "column_id": "open",
      "operator": "is_false",
      "value": null,
      "valid": true
    },
    {
      "column_id": "desired_date",
      "operator": "up_to",
      "value": "2016-10-02",
      "valid": true
    },
    {
      "column_id": "time_total",
      "operator": "greater_than",
      "value": 1000,
      "valid": true
    }
  ],
  "sorting": [
    {
      "column_id": "desired_date",
      "dir": "desc",
      "valid": true
    }
  ],
  "sort": {
    "column_id": "desired_date",
    "dir": "desc",
    "valid": true
  },
  "valid": true,
  "default": false,
  "preset": false
}
POST

/api/v1.0/projects/filters

Create a project filter

Create a new filter record.

Parameters

Name Description type
filter[name] required

Filter name

string

Request

Route

POST /api/v1.0/projects/filters

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "filter": {
    "name": "Failing projects",
    "status": "all",
    "conditions": [
      {
        "column_id": "open",
        "operator": "is_false",
        "value": null
      },
      {
        "column_id": "start_date",
        "operator": "up_to",
        "value": "2016-10-02"
      },
      {
        "column_id": "tasks_count",
        "operator": "greater_than",
        "value": 2
      }
    ]
  }
}

cURL

curl "https://runrun.it/api/v1.0/projects/filters" -d '{"filter":{"name":"Failing projects","status":"all","conditions":[{"column_id":"open","operator":"is_false","value":null},{"column_id":"start_date","operator":"up_to","value":"2016-10-02"},{"column_id":"tasks_count","operator":"greater_than","value":2}]}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 601

Body

{
  "id": 1,
  "name": "Failing projects",
  "status": "all",
  "restriction": [
    {
      "column_id": "open",
      "operator": "is_false",
      "value": null,
      "valid": true
    },
    {
      "column_id": "start_date",
      "operator": "up_to",
      "value": "2016-10-02",
      "valid": true
    },
    {
      "column_id": "tasks_count",
      "operator": "greater_than",
      "value": 2,
      "valid": true
    }
  ],
  "conditions": [
    {
      "column_id": "open",
      "operator": "is_false",
      "value": null,
      "valid": true
    },
    {
      "column_id": "start_date",
      "operator": "up_to",
      "value": "2016-10-02",
      "valid": true
    },
    {
      "column_id": "tasks_count",
      "operator": "greater_than",
      "value": 2,
      "valid": true
    }
  ],
  "sorting": [

  ],
  "sort": null,
  "valid": true,
  "default": false,
  "preset": false
}
PUT

/api/v1.0/projects/filters/:id

Update a project filter

Update a filter record.

Request

Route

PUT /api/v1.0/projects/filters/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "filter": {
    "name": "Another name"
  }
}

cURL

curl "https://runrun.it/api/v1.0/projects/filters/1" -d '{"filter":{"name":"Another name"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 147

Body

{
  "id": 1,
  "name": "Another name",
  "status": "all",
  "restriction": [

  ],
  "conditions": [

  ],
  "sorting": [

  ],
  "sort": null,
  "valid": true,
  "default": false,
  "preset": false
}
DELETE

/api/v1.0/projects/filters/:id

Destroy a project filter

Destroy a filter record.

Request

Route

DELETE /api/v1.0/projects/filters/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/projects/filters/1" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

GET

/api/v1.0/tasks/filters

List all tasks filters

List all tasks filters that the current user can view.

Request

Route

GET /api/v1.0/tasks/filters

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/filters" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 4731

Body

[
  {
    "id": "all",
    "name": "all",
    "status": "all",
    "restriction": [

    ],
    "conditions": [

    ],
    "sorting": [
      {
        "column_id": "activities",
        "dir": "desc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "activities",
      "dir": "desc",
      "valid": true
    },
    "valid": true,
    "default": true,
    "preset": true
  },
  {
    "id": "backlog",
    "name": "backlog",
    "status": "all",
    "restriction": [
      {
        "column_id": "state",
        "operator": "is",
        "value": "backlog",
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "state",
        "operator": "is",
        "value": "backlog",
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "priority",
        "dir": "asc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "priority",
      "dir": "asc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": true
  },
  {
    "id": "queued",
    "name": "queued",
    "status": "all",
    "restriction": [
      {
        "column_id": "state",
        "operator": "is",
        "value": "queued",
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "state",
        "operator": "is",
        "value": "queued",
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "activities",
        "dir": "desc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "activities",
      "dir": "desc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": true
  },
  {
    "id": "working_on",
    "name": "working_on",
    "status": "all",
    "restriction": [
      {
        "column_id": "state",
        "operator": "is",
        "value": "working_on",
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "state",
        "operator": "is",
        "value": "working_on",
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "activities",
        "dir": "desc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "activities",
      "dir": "desc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": true
  },
  {
    "id": "open",
    "name": "open",
    "status": "all",
    "restriction": [
      {
        "column_id": "state",
        "operator": "is_not",
        "value": "closed",
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "state",
        "operator": "is_not",
        "value": "closed",
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "priority",
        "dir": "asc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "priority",
      "dir": "asc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": true
  },
  {
    "id": "delivered",
    "name": "delivered",
    "status": "all",
    "restriction": [
      {
        "column_id": "state",
        "operator": "is",
        "value": "closed",
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "state",
        "operator": "is",
        "value": "closed",
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "close_date",
        "dir": "desc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "close_date",
      "dir": "desc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": true
  },
  {
    "id": "delivered_in_the_last_7_days",
    "name": "delivered_in_the_last_7_days",
    "status": "all",
    "restriction": [
      {
        "column_id": "close_date",
        "operator": "in_the_last",
        "value": "seven_days",
        "valid": true
      },
      {
        "column_id": "state",
        "operator": "is",
        "value": "closed",
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "close_date",
        "operator": "in_the_last",
        "value": "seven_days",
        "valid": true
      },
      {
        "column_id": "state",
        "operator": "is",
        "value": "closed",
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "close_date",
        "dir": "desc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "close_date",
      "dir": "desc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": true
  },
  {
    "id": "estimated_delivery_in_the_next_7_days",
    "name": "estimated_delivery_in_the_next_7_days",
    "status": "all",
    "restriction": [
      {
        "column_id": "close_date",
        "operator": "in_the_next",
        "value": "seven_days",
        "valid": true
      },
      {
        "column_id": "state",
        "operator": "is_not",
        "value": "closed",
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "close_date",
        "operator": "in_the_next",
        "value": "seven_days",
        "valid": true
      },
      {
        "column_id": "state",
        "operator": "is_not",
        "value": "closed",
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "activities",
        "dir": "desc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "activities",
      "dir": "desc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": true
  },
  {
    "id": "overdue",
    "name": "overdue",
    "status": "all",
    "restriction": [
      {
        "column_id": "overdue",
        "operator": "is",
        "value": "hard_overdue",
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "overdue",
        "operator": "is",
        "value": "hard_overdue",
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "desired_date",
        "dir": "asc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "desired_date",
      "dir": "asc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": true
  },
  {
    "id": "overdue_estimated",
    "name": "overdue_estimated",
    "status": "all",
    "restriction": [
      {
        "column_id": "overdue",
        "operator": "is",
        "value": "soft_overdue",
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "overdue",
        "operator": "is",
        "value": "soft_overdue",
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "desired_date",
        "dir": "asc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "desired_date",
      "dir": "asc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": true
  },
  {
    "id": 1,
    "name": "Amazing Tasks",
    "status": "all",
    "restriction": [
      {
        "column_id": "title",
        "operator": "contains",
        "value": "Test",
        "valid": true
      },
      {
        "column_id": "state",
        "operator": "is",
        "value": "queued",
        "valid": true
      }
    ],
    "conditions": [
      {
        "column_id": "title",
        "operator": "contains",
        "value": "Test",
        "valid": true
      },
      {
        "column_id": "state",
        "operator": "is",
        "value": "queued",
        "valid": true
      }
    ],
    "sorting": [
      {
        "column_id": "title",
        "dir": "asc",
        "valid": true
      }
    ],
    "sort": {
      "column_id": "title",
      "dir": "asc",
      "valid": true
    },
    "valid": true,
    "default": false,
    "preset": false
  }
]
GET

/api/v1.0/tasks/filters/:id

Show a task filter

Request

Route

GET /api/v1.0/tasks/filters/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/filters/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 514

Body

{
  "id": 1,
  "name": "Amazing Tasks",
  "status": "all",
  "restriction": [
    {
      "column_id": "title",
      "operator": "contains",
      "value": "Test",
      "valid": true
    },
    {
      "column_id": "state",
      "operator": "is",
      "value": "queued",
      "valid": true
    }
  ],
  "conditions": [
    {
      "column_id": "title",
      "operator": "contains",
      "value": "Test",
      "valid": true
    },
    {
      "column_id": "state",
      "operator": "is",
      "value": "queued",
      "valid": true
    }
  ],
  "sorting": [
    {
      "column_id": "title",
      "dir": "asc",
      "valid": true
    }
  ],
  "sort": {
    "column_id": "title",
    "dir": "asc",
    "valid": true
  },
  "valid": true,
  "default": false,
  "preset": false
}
POST

/api/v1.0/tasks/filters

Create a task filter

Create a new filter record.

Parameters

Name Description type
filter[name] required

Filter name

string

Request

Route

POST /api/v1.0/tasks/filters

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "filter": {
    "name": "Test tasks",
    "status": "all",
    "conditions": [
      {
        "column_id": "title",
        "operator": "contains",
        "value": "Teste"
      }
    ],
    "sort": [
      {
        "column_id": "title",
        "dir": "desc"
      }
    ]
  }
}

cURL

curl "https://runrun.it/api/v1.0/tasks/filters" -d '{"filter":{"name":"Test tasks","status":"all","conditions":[{"column_id":"title","operator":"contains","value":"Teste"}],"sort":[{"column_id":"title","dir":"desc"}]}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 379

Body

{
  "id": 1,
  "name": "Test tasks",
  "status": "all",
  "restriction": [
    {
      "column_id": "title",
      "operator": "contains",
      "value": "Teste",
      "valid": true
    }
  ],
  "conditions": [
    {
      "column_id": "title",
      "operator": "contains",
      "value": "Teste",
      "valid": true
    }
  ],
  "sorting": [
    {
      "column_id": "title",
      "dir": "desc",
      "valid": true
    }
  ],
  "sort": {
    "column_id": "title",
    "dir": "desc",
    "valid": true
  },
  "valid": true,
  "default": false,
  "preset": false
}
PUT

/api/v1.0/tasks/filters/:id

Update a task filter

Update a filter record.

Request

Route

PUT /api/v1.0/tasks/filters/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "filter": {
    "name": "Another name"
  }
}

cURL

curl "https://runrun.it/api/v1.0/tasks/filters/1" -d '{"filter":{"name":"Another name"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 147

Body

{
  "id": 1,
  "name": "Another name",
  "status": "all",
  "restriction": [

  ],
  "conditions": [

  ],
  "sorting": [

  ],
  "sort": null,
  "valid": true,
  "default": false,
  "preset": false
}
DELETE

/api/v1.0/tasks/filters/:id

Destroy a task filter

Destroy a filter record.

Request

Route

DELETE /api/v1.0/tasks/filters/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/filters/1" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Justifications

POST

/api/v1.0/justifications

Create an arbitrary Justification

Request

Route

POST /api/v1.0/justifications

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "text": "New Justification 1",
  "date": "2018-11-15"
}

cURL

curl "https://runrun.it/api/v1.0/justifications" -d '{"text":"New Justification 1","date":"2018-11-15"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 113

Body

{
  "id": 1,
  "user_id": "coyote-214",
  "date": "2018-11-15",
  "text": "New Justification 1",
  "task_id": null,
  "task_title": null
}
POST

/api/v1.0/justifications

Create an arbitrary Justification for a task

Request

Route

POST /api/v1.0/justifications

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "text": "New Justification 2",
  "date": "2018-11-15",
  "task_id": 1
}

cURL

curl "https://runrun.it/api/v1.0/justifications" -d '{"text":"New Justification 2","date":"2018-11-15","task_id":1}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 111

Body

{
  "id": 1,
  "user_id": "coyote-215",
  "date": "2018-11-15",
  "text": "New Justification 2",
  "task_id": 1,
  "task_title": "Bla"
}
PUT

/api/v1.0/justifications/:justification_id

Update the text of a justification

Parameters

Name Description type
user_id

User's id

integer

date

Justification's date

date

text required

Justification's text

string

task_id required

Task's id

integer

task_title

Task title

Request

Route

PUT /api/v1.0/justifications/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "text": "Old justification with a new text"
}

cURL

curl "https://runrun.it/api/v1.0/justifications/1" -d '{"text":"Old justification with a new text"}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 127

Body

{
  "id": 1,
  "user_id": "coyote-217",
  "date": "2018-11-14",
  "text": "Old justification with a new text",
  "task_id": null,
  "task_title": null
}

Manual Work Periods

GET

/api/v1.0/manual_work_periods

List all manual work periods

List all manual work periods. If a user_id and/or task_id is supplied, only work periods for the given user and/or task will be returned. from and before can be used to specify a date window, in this resource, the time and timezone if provided, will be ignored. The default period is 1 month if not specified.

Parameters

Name Description type
manual_work_period[task_id]

ID of related task

integer

manual_work_period[user_id]

ID of user who did the work

string

manual_work_period[from]
manual_work_period[before]

Request

Route

GET /api/v1.0/manual_work_periods?task_id=1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

task_id=1

cURL

curl "https://runrun.it/api/v1.0/manual_work_periods?task_id=1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 174

Body

[
  {
    "id": 1,
    "task_id": 1,
    "seconds": 1000,
    "date_to_apply": "2018-11-16",
    "worker_name": "Coyote 218",
    "user_id": "coyote-218",
    "team_id": null,
    "task_state_id": null,
    "task_status_id": null
  }
]
GET

/api/v1.0/manual_work_periods/:id

Show a Manual Work Period

Request

Route

GET /api/v1.0/manual_work_periods/1?task_id=1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

task_id=1

cURL

curl "https://runrun.it/api/v1.0/manual_work_periods/1?task_id=1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id ID integer
task_id ID of related task integer
seconds Time added in seconds integer
date_to_apply Date time was worked date
worker_name Name of user who did the work string
user_id ID of user who did the work string
team_id ID of team associated to user who did the work integer
task_state_id [Deprecated] Use task_status_id integer
task_status_id ID of task status associated to the manual work period integer

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 172

Body

{
  "id": 1,
  "task_id": 1,
  "seconds": 1000,
  "date_to_apply": "2018-11-16",
  "worker_name": "Coyote 220",
  "user_id": "coyote-220",
  "team_id": null,
  "task_state_id": null,
  "task_status_id": null
}
POST

/api/v1.0/manual_work_periods

Create a Manual Work Period

Create a record that additional time was worked on a given task, by a given user on a specific team and task state, on a specific day.

Parameters

Name Description type
manual_work_period[task_id] required

ID of related task

integer

manual_work_period[user_id] required

ID of user who did the work

string

manual_work_period[team_id] required

ID of team associated to user who did the work

integer

manual_work_period[task_state_id] required

[Deprecated] Use task_status_id

integer

manual_work_period[date_to_apply] required

Date time was worked

date

manual_work_period[seconds] required

Time added in seconds

integer

Request

Route

POST /api/v1.0/manual_work_periods

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "manual_work_period": {
    "date_to_apply": "2018-11-16",
    "seconds": 3600,
    "task_id": 1,
    "task_state_id": null,
    "team_id": null,
    "user_id": 1
  }
}

cURL

curl "https://runrun.it/api/v1.0/manual_work_periods" -d '{"manual_work_period":{"date_to_apply":"2018-11-16","seconds":3600,"task_id":1,"task_state_id":null,"team_id":null,"user_id":1}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 172

Body

{
  "id": 1,
  "task_id": 1,
  "seconds": 3600,
  "date_to_apply": "2018-11-16",
  "worker_name": "Coyote 222",
  "user_id": "coyote-222",
  "team_id": null,
  "task_state_id": null,
  "task_status_id": null
}
PUT

/api/v1.0/manual_work_periods/:id

Update a Manual Work Period

After creation the only updateable field is seconds. In general, it is better to delete and create a new Manual Work Period rather than update an existing one.

Parameters

Name Description type
manual_work_period[seconds] required

Time added in seconds

integer

Request

Route

PUT /api/v1.0/manual_work_periods/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_id": 1,
  "manual_work_periods": {
    "seconds": 2000
  }
}

cURL

curl "https://runrun.it/api/v1.0/manual_work_periods/1" -d '{"task_id":1,"manual_work_periods":{"seconds":2000}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 172

Body

{
  "id": 1,
  "task_id": 1,
  "seconds": 2000,
  "date_to_apply": "2018-11-16",
  "worker_name": "Coyote 224",
  "user_id": "coyote-224",
  "team_id": null,
  "task_state_id": null,
  "task_status_id": null
}
DELETE

/api/v1.0/manual_work_periods/:id

Destroy a Manual Work Period

Request

Route

DELETE /api/v1.0/manual_work_periods/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_id": 1
}

cURL

curl "https://runrun.it/api/v1.0/manual_work_periods/1" -d '{"task_id":1}' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Holidays

GET

/api/v1.0/off_days

List all Holidays

Request

Route

GET /api/v1.0/off_days

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/off_days" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 117

Body

[
  {
    "id": 2,
    "day": "2018-11-18",
    "description": "Ice Cream Day"
  },
  {
    "id": 1,
    "day": "2018-11-17",
    "description": "Developer Day"
  }
]
GET

/api/v1.0/off_days/:id

Show a Holiday

Request

Route

GET /api/v1.0/off_days/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/off_days/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id ID of the holiday integer
day Date the holiday occurs on date
description Name/description of holiday string

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 58

Body

{
  "id": 1,
  "day": "2018-11-19",
  "description": "City holiday 1"
}
POST

/api/v1.0/off_days

Create a Holiday

Create a holiday. Holidays occurring in the past cannot be created (i.e. holidays where day is before today). Only account admininstrators can create holidays.

Parameters

Name Description type
off_day[day] required

Date the holiday occurs on

date

off_day[description] required

Name/description of holiday

string

Request

Route

POST /api/v1.0/off_days

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "off_day": {
    "day": "2018-11-20",
    "description": "City holiday 2"
  }
}

cURL

curl "https://runrun.it/api/v1.0/off_days" -d '{"off_day":{"day":"2018-11-20","description":"City holiday 2"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 58

Body

{
  "id": 1,
  "day": "2018-11-20",
  "description": "City holiday 2"
}
PUT

/api/v1.0/off_days/:id

Update a Holiday

Update a holiday. Updating the day value is best done as a destroy followed by a create. Only account administrators can perform this action.

Parameters

Name Description type
off_days[description]

Name/description of holiday

string

Request

Route

PUT /api/v1.0/off_days/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "off_day": {
    "description": "Developer Day"
  }
}

cURL

curl "https://runrun.it/api/v1.0/off_days/1" -d '{"off_day":{"description":"Developer Day"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 57

Body

{
  "id": 1,
  "day": "2018-11-21",
  "description": "Developer Day"
}
DELETE

/api/v1.0/off_days/:id

Destroy a Holiday

Destroy a holiday. Only account administrators can perform this action.

Request

Route

DELETE /api/v1.0/off_days/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/off_days/1" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

PartnerTeams

GET

/api/v1.0/users/:user_id/partner_teams

List all partner_teams

List all partner_teams that the current user can view.

Request

Route

GET /api/v1.0/users/coyote-251/partner_teams

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/users/coyote-251/partner_teams" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 133

Body

[
  {
    "id": 1,
    "name": "Team_A",
    "master_user_id": "coyote-251",
    "master_user_name": "Coyote 251",
    "cost_center": null,
    "user_ids": [
      "coyote-251"
    ]
  }
]

Partners

GET

/api/v1.0/users/:user_id/partners

List all partners of user

Return a list of all partners of user. Partners of a user are users that the user can assign tasks to.

Parameters

Name Description type
user_id required

User's ID

string

Request

Route

GET /api/v1.0/users/coyote-253/partners

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/users/coyote-253/partners" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id User's ID string
name User's full name string
email User's email string
avatar_url User's chosen profile photo url
avatar_large_url User's chosen profile photo url
super_compact_view *internal usage* boolean
compact_side_menu *internal usage* boolean
cost_hour Current user cost per hour decimal
is_master User is an administrator boolean
is_manager User is a manager boolean
is_auditor User is an auditor boolean
can_create_client_project_and_task_types User has permission to create client, projects and task types boolean
time_zone IANA Time Zone Database zone name string
position Job position in company string
on_vacation User currently on vacation boolean
birthday User's birthday date
phone User phone string
gender User gender string
marital_status User marital status string
in_company_since Joining date in company date
is_certified Whether the user has passed Runrun.it certification boolean
language User preference language string
alt_id Constant size ID (internal use only) string
oid Constant size ID (internal use only) string
see_archived_clients_and_projects Admin decides either to see or not archived clients and projects boolean
budget_manager Can edit project extra costs boolean
shifts User shifts array
is_mensurable Can process RR Ratings? boolean
time_tracking_mode Current Time tracking mode, 'smart' for automatic tracking time based on shift or 'manual' string
blocked_by_time_worked_at When the user is blocked for being out of the acceptable worked time defined by the company datetime
demanders_count Demanders count integer
partners_count Partners count integer
password_updated_at Last time user password was updated datetime
password_expired_at Time when the user password was considered expired datetime

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 3643

Body

[
  {
    "id": "coyote-253",
    "name": "Coyote 253",
    "email": "coyote240@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-184/coyote-253/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-184/coyote-253/regular.png",
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": false,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": false,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "c8749d563a46ce576361b282de704a19",
    "oid": "92a6f5b72",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 1,
    "partners_count": 2,
    "password_updated_at": "2018-11-16T14:32:47-02:00",
    "password_expired_at": null
  },
  {
    "id": "coyote-254",
    "name": "Coyote 254",
    "email": "coyote241@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-184/coyote-254/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-184/coyote-254/regular.png",
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": false,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": false,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "7255830b9fa08dcd838bacd4c491d03d",
    "oid": "dbfa7092b",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 2,
    "partners_count": 1,
    "password_updated_at": "2018-11-16T14:32:47-02:00",
    "password_expired_at": null
  }
]
POST

/api/v1.0/users/:user_id/partners

Adds a partner to a user

Adds the user represented by partner_id as partner of the user_id

Parameters

Name Description type
user_id required

User's ID

string

Request

Route

POST /api/v1.0/users/coyote-256/partners

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "partner_id": "coyote-258"
}

cURL

curl "https://runrun.it/api/v1.0/users/coyote-256/partners" -d '{"partner_id":"coyote-258"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 
POST

/api/v1.0/users/:user_id/partners/replace

Replace a user partners list

Parameters

Name Description type
user_id required

User's ID

string

Request

Route

POST /api/v1.0/users/coyote-260/partners/replace

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "ids": "coyote-262,coyote-263"
}

cURL

curl "https://runrun.it/api/v1.0/users/coyote-260/partners/replace" -d '{"ids":"coyote-262,coyote-263"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 
DELETE

/api/v1.0/users/:user_id/partners/:id

Destroy a partner of a user

Parameters

Name Description type
user_id required

User's ID

string

Request

Route

DELETE /api/v1.0/users/coyote-265/partners/coyote-266

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/users/coyote-265/partners/coyote-266" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Posts

GET

/api/v1.0/posts/unseen_activities

Get unseen post activities

This endpoint will return a data representation for each bulletin board containing the ID of the team, and the number of unread items. The only exception is the enterprise board where the id string: "enterprise".

Request

Route

GET /api/v1.0/posts/unseen_activities

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/posts/unseen_activities" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id ID of item integer
count Amount of unread items integer

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 31

Body

[
  {
    "id": "enterprise",
    "count": 0
  }
]
GET

/api/v1.0/posts/enterprise

Get all posts for a enterprise

Request

Route

GET /api/v1.0/posts/enterprise

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/posts/enterprise" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id Id of the comment integer
user_id Id of the comment creator string
is_system_message Flag saying if it is a system comment boolean
text The actual text of the comment text
commenter_name The name of the creator string
children_count Amount of comments in the thread integer
commentable_id The commentable id string
commentable_type To which resource type does this comment belongs string
created_at Datetime the comment has been made datetime
edited_at Datetime the comment has been edited datetime
deleted_at Datetime the comment has been deleted datetime
thread_id The actual text of the comment integer
quoted_comment_id Id of the quoted comment integer
quoted_comment_text First 140 characters of quoted comment string
quoted_comment_user_id Id of the quoted comment creator string
quoted_comment_user_name The name of the quoted comment creator string
task_id Id of task which the comment belong to string
comment_id Id of comment which the comment belong to integer
team_id Id of team which the comment belong to integer
enterprise_id Id of enterprise which the comment belong to string
document_id Id of referenced document (used by system messages) integer
is_legacy True if comment was created before 2018-01-04 boolean
media Images, videos and websites informations json
documents Documents data array

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 554

Body

[
  {
    "id": 1,
    "user_id": "coyote-271",
    "is_system_message": false,
    "text": "A enterprise post",
    "commenter_name": "Coyote 271",
    "children_count": 0,
    "commentable_id": "acme-191",
    "commentable_type": "Enterprise",
    "created_at": "2018-11-16T14:34:37-02:00",
    "edited_at": null,
    "deleted_at": null,
    "thread_id": 1,
    "quoted_comment_id": null,
    "quoted_comment_text": null,
    "quoted_comment_user_id": null,
    "quoted_comment_user_name": null,
    "task_id": null,
    "comment_id": null,
    "team_id": null,
    "enterprise_id": "acme-191",
    "document_id": null,
    "is_legacy": false,
    "media": null,
    "documents": [

    ],
    "lover_ids": [

    ]
  }
]
POST

/api/v1.0/posts/enterprise

Create a new post for a enterprise

Parameters

Name Description type
text required

The text you want to post

text

Request

Route

POST /api/v1.0/posts/enterprise

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "text": "A message"
}

cURL

curl "https://runrun.it/api/v1.0/posts/enterprise" -d '{"text":"A message"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 544

Body

{
  "id": 1,
  "user_id": "coyote-272",
  "is_system_message": false,
  "text": "A message",
  "commenter_name": "Coyote 272",
  "children_count": 0,
  "commentable_id": "acme-192",
  "commentable_type": "Enterprise",
  "created_at": "2018-11-16T14:34:52-02:00",
  "edited_at": null,
  "deleted_at": null,
  "thread_id": 1,
  "quoted_comment_id": null,
  "quoted_comment_text": null,
  "quoted_comment_user_id": null,
  "quoted_comment_user_name": null,
  "task_id": null,
  "comment_id": null,
  "team_id": null,
  "enterprise_id": "acme-192",
  "document_id": null,
  "is_legacy": false,
  "media": null,
  "documents": [

  ],
  "lover_ids": [

  ]
}
GET

/api/v1.0/posts/teams/:team_id

Get all posts for a team

Parameters

Name Description type
team_id required

The desired team_id

integer

text required

The text you want to post

text

Request

Route

GET /api/v1.0/posts/teams/2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/posts/teams/2" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id Id of the comment integer
user_id Id of the comment creator string
is_system_message Flag saying if it is a system comment boolean
text The actual text of the comment text
commenter_name The name of the creator string
children_count Amount of comments in the thread integer
commentable_id The commentable id string
commentable_type To which resource type does this comment belongs string
created_at Datetime the comment has been made datetime
edited_at Datetime the comment has been edited datetime
deleted_at Datetime the comment has been deleted datetime
thread_id The actual text of the comment integer
quoted_comment_id Id of the quoted comment integer
quoted_comment_text First 140 characters of quoted comment string
quoted_comment_user_id Id of the quoted comment creator string
quoted_comment_user_name The name of the quoted comment creator string
task_id Id of task which the comment belong to string
comment_id Id of comment which the comment belong to integer
team_id Id of team which the comment belong to integer
enterprise_id Id of enterprise which the comment belong to string
document_id Id of referenced document (used by system messages) integer
is_legacy True if comment was created before 2018-01-04 boolean
media Images, videos and websites informations json
documents Documents data array

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2

Body

[

]
POST

/api/v1.0/posts/teams/:team_id

Create a new post for a team

Parameters

Name Description type
team_id required

The desired team_id

integer

text required

The text you want to post

text

Request

Route

POST /api/v1.0/posts/teams/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "text": "A message"
}

cURL

curl "https://runrun.it/api/v1.0/posts/teams/1" -d '{"text":"A message"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id Id of the comment integer
user_id Id of the comment creator string
is_system_message Flag saying if it is a system comment boolean
text The actual text of the comment text
commenter_name The name of the creator string
children_count Amount of comments in the thread integer
commentable_id The commentable id string
commentable_type To which resource type does this comment belongs string
created_at Datetime the comment has been made datetime
edited_at Datetime the comment has been edited datetime
deleted_at Datetime the comment has been deleted datetime
thread_id The actual text of the comment integer
quoted_comment_id Id of the quoted comment integer
quoted_comment_text First 140 characters of quoted comment string
quoted_comment_user_id Id of the quoted comment creator string
quoted_comment_user_name The name of the quoted comment creator string
task_id Id of task which the comment belong to string
comment_id Id of comment which the comment belong to integer
team_id Id of team which the comment belong to integer
enterprise_id Id of enterprise which the comment belong to string
document_id Id of referenced document (used by system messages) integer
is_legacy True if comment was created before 2018-01-04 boolean
media Images, videos and websites informations json
documents Documents data array

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 520

Body

{
  "id": 1,
  "user_id": "coyote-276",
  "is_system_message": false,
  "text": "A message",
  "commenter_name": "Coyote 276",
  "children_count": 0,
  "commentable_id": 1,
  "commentable_type": "Team",
  "created_at": "2018-11-16T14:35:31-02:00",
  "edited_at": null,
  "deleted_at": null,
  "thread_id": 1,
  "quoted_comment_id": null,
  "quoted_comment_text": null,
  "quoted_comment_user_id": null,
  "quoted_comment_user_name": null,
  "task_id": null,
  "comment_id": null,
  "team_id": 1,
  "enterprise_id": null,
  "document_id": null,
  "is_legacy": false,
  "media": null,
  "documents": [

  ],
  "lover_ids": [

  ]
}

Prerequisites

GET

/api/v1.0/tasks/:task_id/prerequisites

List all task prerequisites from a task

Parameters

Name Description type
task_id required

ID of the task

integer

Request

Route

GET /api/v1.0/tasks/1/prerequisites

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/prerequisites" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2210

Body

[
  {
    "id": 2,
    "_permission_": true,
    "title": "Bla",
    "is_working_on": false,
    "user_id": "coyote-280",
    "type_id": 7,
    "project_id": 2,
    "desired_date": null,
    "desired_date_with_time": null,
    "estimated_start_date": "2018-11-16T15:35:48-02:00",
    "estimated_delivery_date": "2018-11-16T16:35:48-02:00",
    "close_date": "2018-11-16T16:35:48-02:00",
    "task_status_id": null,
    "was_reopened": false,
    "is_closed": false,
    "on_going": false,
    "tag_list": "",
    "estimated_delivery_date_updated": true,
    "estimate_updated": true,
    "last_estimated_at": "2018-11-16T14:35:48-02:00",
    "queue_position": 2,
    "scheduled_start_time": null,
    "created_at": "2018-11-16T14:35:47-02:00",
    "start_date": "2018-11-16T15:35:48-02:00",
    "current_estimate_seconds": 3600,
    "current_evaluator_id": null,
    "approved": null,
    "evaluation_status": null,
    "attachments_count": 0,
    "task_tags": "{}",
    "is_scheduled": false,
    "client_name": "Test client 66",
    "project_name": "Test project 64",
    "type_name": "TaskType 80",
    "user_name": "Coyote 280",
    "task_status_name": null,
    "type_color": "FFFFFF",
    "state": "queued",
    "overdue": "on_schedule",
    "time_worked": 0,
    "time_pending": 3600,
    "time_total": 3600,
    "time_progress": 0.0,
    "activities_6_days_ago": 0,
    "activities_5_days_ago": 0,
    "activities_4_days_ago": 0,
    "activities_3_days_ago": 0,
    "activities_2_days_ago": 0,
    "activities_1_days_ago": 0,
    "activities_0_days_ago": 0,
    "activities": 0,
    "repetition_rule": null,
    "uid": 2,
    "responsible_id": "coyote-278",
    "priority": 2,
    "task_state_id": null,
    "team_id": null,
    "responsible_name": "Coyote 278",
    "team_name": null,
    "task_state_name": null,
    "activities_7_days_ago": 0,
    "repetition_rule_id": null,
    "current_worked_time": 0,
    "assignments": [
      {
        "id": "92a6f5b72",
        "task_id": 2,
        "assignee_id": "coyote-278",
        "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-196/coyote-278/mini.png",
        "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-196/coyote-278/regular.png",
        "team_id": null,
        "assignee_name": "Coyote 278",
        "team_name": null,
        "queue_position": 2,
        "priority": 2,
        "current_estimate_seconds": 3600,
        "time_worked": 0,
        "estimated_start_date": "2018-11-16T15:35:48-02:00",
        "estimate_updated": true,
        "start_date": null,
        "close_date": "2018-11-16T16:35:48-02:00",
        "is_closed": false,
        "reestimate_count": 0,
        "is_working_on": false
      }
    ],
    "follower_ids": [

    ],
    "workflow_id": null,
    "checklist_id": null
  }
]
POST

/api/v1.0/tasks/:task_id/prerequisites

Add a task prerequisite to a task

Parameters

Name Description type
task_id required

ID of the task

integer

Request

Route

POST /api/v1.0/tasks/1/prerequisites

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "prerequisite": {
    "id": 2
  }
}

cURL

curl "https://runrun.it/api/v1.0/tasks/1/prerequisites" -d '{"prerequisite":{"id":2}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2208

Body

{
  "id": 2,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-283",
  "type_id": 7,
  "project_id": 2,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-11-16T15:36:05-02:00",
  "estimated_delivery_date": "2018-11-16T16:36:05-02:00",
  "close_date": "2018-11-16T16:36:05-02:00",
  "task_status_id": null,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimated_delivery_date_updated": true,
  "estimate_updated": true,
  "last_estimated_at": "2018-11-16T14:36:05-02:00",
  "queue_position": 2,
  "scheduled_start_time": null,
  "created_at": "2018-11-16T14:36:05-02:00",
  "start_date": "2018-11-16T15:36:05-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 68",
  "project_name": "Test project 66",
  "type_name": "TaskType 82",
  "user_name": "Coyote 283",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 2,
  "responsible_id": "coyote-281",
  "priority": 2,
  "task_state_id": null,
  "team_id": null,
  "responsible_name": "Coyote 281",
  "team_name": null,
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "assignments": [
    {
      "id": "92a6f5b72",
      "task_id": 2,
      "assignee_id": "coyote-281",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-197/coyote-281/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-197/coyote-281/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 281",
      "team_name": null,
      "queue_position": 2,
      "priority": 2,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-11-16T15:36:05-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-11-16T16:36:05-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null
}
DELETE

/api/v1.0/tasks/:task_id/prerequisites/:id

Remove a task prerequisite from a task

Parameters

Name Description type
task_id required

ID of the task

integer

id required

ID of the task prerequisite

integer

Request

Route

DELETE /api/v1.0/tasks/1/prerequisites/2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/prerequisites/2" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

GET

/api/v1.0/task_templates/:task_template_id/prerequisites

List all task template prerequisites from a task template

Parameters

Name Description type
task_template_id required

ID of the task template

integer

Request

Route

GET /api/v1.0/task_templates/17/prerequisites

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/task_templates/17/prerequisites" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 395

Body

[
  {
    "id": 18,
    "title": "Task Template",
    "user_id": "coyote-292",
    "type_id": 7,
    "queue_position": 1,
    "project_template_id": 1,
    "tag_list": "",
    "created_at": "2018-11-16T14:36:58-02:00",
    "follower_ids": [

    ],
    "responsible_id": "coyote-292",
    "team_id": null,
    "assignments": [
      {
        "id": "92a6f5b72",
        "task_template_id": 18,
        "assignee_id": "coyote-292",
        "team_id": null,
        "assignee_name": "Coyote 292",
        "team_name": null
      }
    ],
    "workflow_id": null
  }
]
POST

/api/v1.0/task_templates/:task_template_id/prerequisites

Add a task template prerequisite to a task template

Parameters

Name Description type
task_template_id required

ID of the task template

integer

Request

Route

POST /api/v1.0/task_templates/19/prerequisites

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "prerequisite": {
    "id": 20
  }
}

cURL

curl "https://runrun.it/api/v1.0/task_templates/19/prerequisites" -d '{"prerequisite":{"id":20}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 396

Body

{
  "id": 20,
  "title": "Task Template",
  "user_id": "coyote-295",
  "type_id": 7,
  "queue_position": null,
  "project_template_id": 1,
  "tag_list": "",
  "created_at": "2018-11-16T14:37:14-02:00",
  "follower_ids": [

  ],
  "responsible_id": "coyote-295",
  "team_id": null,
  "assignments": [
    {
      "id": "92a6f5b72",
      "task_template_id": 20,
      "assignee_id": "coyote-295",
      "team_id": null,
      "assignee_name": "Coyote 295",
      "team_name": null
    }
  ],
  "workflow_id": null
}
DELETE

/api/v1.0/task_templates/:task_template_id/prerequisites/:id

Remove a task template prerequisite from a task template

Parameters

Name Description type
task_template_id required

ID of the task template

integer

id required

ID of the task template prerequisite

integer

Request

Route

DELETE /api/v1.0/task_templates/23/prerequisites/24

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/task_templates/23/prerequisites/24" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

ProjectExtraCost

GET

/api/v1.0/projects/:project_id/extra_costs

List all extra costs of a project

Request

Route

GET /api/v1.0/projects/1/extra_costs

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/projects/1/extra_costs" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 208

Body

[
  {
    "id": 1,
    "description": "Cost 1",
    "date": "2018-11-16",
    "amount": 1000.0,
    "project_id": 1,
    "author_name": "Coyote 303",
    "author_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-204/coyote-303/mini.png"
  }
]
GET

/api/v1.0/projects/:project_id/extra_costs/:id

Show a extra cost of a project

Request

Route

GET /api/v1.0/projects/1/extra_costs/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/projects/1/extra_costs/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id ID of project extra cost integer
description Description about the project extra cost string
date When project extra cost was created date
amount Project extra cost value decimal
project_id Project extra cost associated project ID integer
author_name User's name that created the project extra cost string
author_avatar_url User's avatar that created the project extra cost string

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 206

Body

{
  "id": 1,
  "description": "Cost 2",
  "date": "2018-11-16",
  "amount": 1000.0,
  "project_id": 1,
  "author_name": "Coyote 305",
  "author_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-205/coyote-305/mini.png"
}
POST

/api/v1.0/projects/:project_id/extra_costs

Create a new Project Extra Cost

Parameters

Name Description type
project_extra_cost[description] required

Description about the project extra cost

string

project_extra_cost[date] required

When project extra cost was created

date

project_extra_cost[amount] required

Project extra cost value

decimal

Request

Route

POST /api/v1.0/projects/1/extra_costs

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "project_extra_cost": {
    "amount": "1000.0",
    "date": "2018-11-16",
    "description": "Cost 3"
  }
}

cURL

curl "https://runrun.it/api/v1.0/projects/1/extra_costs" -d '{"project_extra_cost":{"amount":"1000.0","date":"2018-11-16","description":"Cost 3"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 206

Body

{
  "id": 1,
  "description": "Cost 3",
  "date": "2018-11-16",
  "amount": 1000.0,
  "project_id": 1,
  "author_name": "Coyote 306",
  "author_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-206/coyote-306/mini.png"
}

Project Groups

GET

/api/v1.0/clients/:client_id/project_groups

List all Project Groups

Request

Route

GET /api/v1.0/clients/1/project_groups

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/clients/1/project_groups" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 449

Body

[
  {
    "id": 1,
    "name": "Sem grupo",
    "is_default": true,
    "client_id": 1,
    "project_sub_groups": [

    ],
    "client_name": "Test client 76",
    "projects_count": 0,
    "time_worked": 0,
    "time_pending_backlog": 0,
    "time_pending_queued": 0,
    "time_pending": 0,
    "time_total": 0,
    "time_progress": 0.0,
    "activities_6_days_ago": 0,
    "activities_5_days_ago": 0,
    "activities_4_days_ago": 0,
    "activities_3_days_ago": 0,
    "activities_2_days_ago": 0,
    "activities_1_days_ago": 0,
    "activities_0_days_ago": 0,
    "activities": 0
  }
]
POST

/api/v1.0/project_groups/export

Export

Request

Route

POST /api/v1.0/project_groups/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/project_groups/export" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/project_groups/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "xlsx"
}

cURL

curl "https://runrun.it/api/v1.0/project_groups/export" -d '{"format_type":"xlsx"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/project_groups/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "csv"
}

cURL

curl "https://runrun.it/api/v1.0/project_groups/export" -d '{"format_type":"csv"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/project_groups/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "bad_format"
}

cURL

curl "https://runrun.it/api/v1.0/project_groups/export" -d '{"format_type":"bad_format"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

400

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 
GET

/api/v1.0/clients/:client_id/project_groups/:id

Show a Project Group

Request

Route

GET /api/v1.0/clients/1/project_groups/2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/clients/1/project_groups/2" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 454

Body

{
  "id": 2,
  "name": "Project Group 1",
  "is_default": false,
  "client_id": 1,
  "project_sub_groups": [

  ],
  "client_name": "Test client 77",
  "projects_count": 0,
  "time_worked": 0,
  "time_pending_backlog": 0,
  "time_pending_queued": 0,
  "time_pending": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0
}
POST

/api/v1.0/clients/:client_id/project_groups

Create a Project Group

When creating a project group the name must be unique among clients belonging to the same enterprise.

Parameters

Name Description type
name required

Name of project group

string

is_default required

Project group is default for that client?

boolean

Request

Route

POST /api/v1.0/clients/1/project_groups

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "project_group": {
    "is_default": false,
    "name": "Project Group 2"
  }
}

cURL

curl "https://runrun.it/api/v1.0/clients/1/project_groups" -d '{"project_group":{"is_default":false,"name":"Project Group 2"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 454

Body

{
  "id": 2,
  "name": "Project Group 2",
  "is_default": false,
  "client_id": 1,
  "project_sub_groups": [

  ],
  "client_name": "Test client 78",
  "projects_count": 0,
  "time_worked": 0,
  "time_pending_backlog": 0,
  "time_pending_queued": 0,
  "time_pending": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0
}
PUT

/api/v1.0/clients/:client_id/project_groups/:id

Update a Project Group

When updating a project group the name must be unique among clients belonging to the same enterprise.

Request

Route

PUT /api/v1.0/clients/1/project_groups/2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "project_group": {
    "name": "New Name"
  }
}

cURL

curl "https://runrun.it/api/v1.0/clients/1/project_groups/2" -d '{"project_group":{"name":"New Name"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 447

Body

{
  "id": 2,
  "name": "New Name",
  "is_default": false,
  "client_id": 1,
  "project_sub_groups": [

  ],
  "client_name": "Test client 80",
  "projects_count": 0,
  "time_worked": 0,
  "time_pending_backlog": 0,
  "time_pending_queued": 0,
  "time_pending": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0
}
DELETE

/api/v1.0/clients/:client_id/project_groups/:id

Destroy a Project Group

Request

Route

DELETE /api/v1.0/clients/1/project_groups/2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/clients/1/project_groups/2" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Project Sub Groups

GET

/api/v1.0/project_groups/:project_group_id/project_sub_groups

List all Project Sub Groups using Project Group id

Request

Route

GET /api/v1.0/project_groups/2/project_sub_groups?sort_dir=desc&search_term=Project+Sub+Group+1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

sort_dir=desc
search_term=Project Sub Group 1

cURL

curl "https://runrun.it/api/v1.0/project_groups/2/project_sub_groups?sort_dir=desc&search_term=Project+Sub+Group+1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 515

Body

[
  {
    "id": 3,
    "name": "Project Sub Group 1",
    "is_default": false,
    "project_group_id": 2,
    "client_name": "Test client 83",
    "project_group_name": "Project Group 7",
    "project_group_is_default": false,
    "projects_count": 0,
    "time_worked": 0,
    "time_pending_backlog": 0,
    "time_pending_queued": 0,
    "time_pending": 0,
    "time_total": 0,
    "time_progress": 0.0,
    "activities_6_days_ago": 0,
    "activities_5_days_ago": 0,
    "activities_4_days_ago": 0,
    "activities_3_days_ago": 0,
    "activities_2_days_ago": 0,
    "activities_1_days_ago": 0,
    "activities_0_days_ago": 0,
    "activities": 0
  }
]
GET

/api/v1.0/clients/:client_id/project_sub_groups

List all Project Sub Groups using Client id

Request

Route

GET /api/v1.0/clients/1/project_sub_groups?sort_dir=desc&search_term=Project+Sub+Group+2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

sort_dir=desc
search_term=Project Sub Group 2

cURL

curl "https://runrun.it/api/v1.0/clients/1/project_sub_groups?sort_dir=desc&search_term=Project+Sub+Group+2" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 515

Body

[
  {
    "id": 3,
    "name": "Project Sub Group 2",
    "is_default": false,
    "project_group_id": 2,
    "client_name": "Test client 84",
    "project_group_name": "Project Group 8",
    "project_group_is_default": false,
    "projects_count": 0,
    "time_worked": 0,
    "time_pending_backlog": 0,
    "time_pending_queued": 0,
    "time_pending": 0,
    "time_total": 0,
    "time_progress": 0.0,
    "activities_6_days_ago": 0,
    "activities_5_days_ago": 0,
    "activities_4_days_ago": 0,
    "activities_3_days_ago": 0,
    "activities_2_days_ago": 0,
    "activities_1_days_ago": 0,
    "activities_0_days_ago": 0,
    "activities": 0
  }
]
POST

/api/v1.0/project_sub_groups/export

Export

Request

Route

POST /api/v1.0/project_sub_groups/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/project_sub_groups/export" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/project_sub_groups/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "xlsx"
}

cURL

curl "https://runrun.it/api/v1.0/project_sub_groups/export" -d '{"format_type":"xlsx"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/project_sub_groups/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "csv"
}

cURL

curl "https://runrun.it/api/v1.0/project_sub_groups/export" -d '{"format_type":"csv"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/project_sub_groups/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "bad_format"
}

cURL

curl "https://runrun.it/api/v1.0/project_sub_groups/export" -d '{"format_type":"bad_format"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

400

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 
GET

/api/v1.0/project_groups/:project_group_id/project_sub_groups/:id

Show a Project Sub Group

Request

Route

GET /api/v1.0/project_groups/2/project_sub_groups/3

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/project_groups/2/project_sub_groups/3" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 513

Body

{
  "id": 3,
  "name": "Project Sub Group 3",
  "is_default": false,
  "project_group_id": 2,
  "client_name": "Test client 85",
  "project_group_name": "Project Group 9",
  "project_group_is_default": false,
  "projects_count": 0,
  "time_worked": 0,
  "time_pending_backlog": 0,
  "time_pending_queued": 0,
  "time_pending": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0
}
POST

/api/v1.0/project_groups/:project_group_id/project_sub_groups

Create a Project Sub Group

When creating a project sub group the name must be unique among project groups belonging to the same client.

Parameters

Name Description type
name required

Name of project group

string

is_default required

Project group is default for that client?

boolean

Request

Route

POST /api/v1.0/project_groups/2/project_sub_groups

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "project_sub_group": {
    "is_default": false,
    "name": "Project Sub Group 4"
  }
}

cURL

curl "https://runrun.it/api/v1.0/project_groups/2/project_sub_groups" -d '{"project_sub_group":{"is_default":false,"name":"Project Sub Group 4"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 514

Body

{
  "id": 3,
  "name": "Project Sub Group 4",
  "is_default": false,
  "project_group_id": 2,
  "client_name": "Test client 86",
  "project_group_name": "Project Group 10",
  "project_group_is_default": false,
  "projects_count": 0,
  "time_worked": 0,
  "time_pending_backlog": 0,
  "time_pending_queued": 0,
  "time_pending": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0
}
PUT

/api/v1.0/project_groups/:project_group_id/project_sub_groups/:id

Update a Project Sub Group

When updating a project sub group the name must be unique among project groups belonging to the same client.

Request

Route

PUT /api/v1.0/project_groups/2/project_sub_groups/3

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "project_sub_group": {
    "name": "New Name"
  }
}

cURL

curl "https://runrun.it/api/v1.0/project_groups/2/project_sub_groups/3" -d '{"project_sub_group":{"name":"New Name"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 503

Body

{
  "id": 3,
  "name": "New Name",
  "is_default": false,
  "project_group_id": 2,
  "client_name": "Test client 88",
  "project_group_name": "Project Group 12",
  "project_group_is_default": false,
  "projects_count": 0,
  "time_worked": 0,
  "time_pending_backlog": 0,
  "time_pending_queued": 0,
  "time_pending": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0
}
DELETE

/api/v1.0/project_groups/:project_group_id/project_sub_groups/:id

Destroy a Project Sub Group

Request

Route

DELETE /api/v1.0/project_groups/2/project_sub_groups/3

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/project_groups/2/project_sub_groups/3" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Project Templates

GET

/api/v1.0/project_templates

List all Project Templates

Request

Route

GET /api/v1.0/project_templates

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/project_templates" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2

Body

[

]
GET

/api/v1.0/project_templates/:id

Show a Project Template

Request

Route

GET /api/v1.0/project_templates/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/project_templates/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 42

Body

{
  "id": 1,
  "name": "Test project template 32"
}
POST

/api/v1.0/project_templates/

Create a Project Template

When creating a project template the name must be unique among projects belonging to the same client.

Parameters

Name Description type
name required

Name of project template

string

Request

Route

POST /api/v1.0/project_templates/

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "project_template": {
    "name": "Test project template 33"
  }
}

cURL

curl "https://runrun.it/api/v1.0/project_templates/" -d '{"project_template":{"name":"Test project template 33"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 42

Body

{
  "id": 1,
  "name": "Test project template 33"
}
PUT

/api/v1.0/project_templates/:id

Update a Project Template

When updating a project template the name must be unique among projects belonging to the same client.

Request

Route

PUT /api/v1.0/project_templates/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "project_template": {
    "name": "New Name"
  }
}

cURL

curl "https://runrun.it/api/v1.0/project_templates/1" -d '{"project_template":{"name":"New Name"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 26

Body

{
  "id": 1,
  "name": "New Name"
}
DELETE

/api/v1.0/project_templates/:id

Destroy a Project Template

Request

Route

DELETE /api/v1.0/project_templates/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/project_templates/1" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Projects

GET

/api/v1.0/projects

List all projects

Request

Route

GET /api/v1.0/projects

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/projects" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 827

Body

[
  {
    "id": 1,
    "name": "Project_A",
    "is_active": true,
    "client_id": 1,
    "budgeted_cost": 0.0,
    "desired_date": null,
    "created_at": "2018-11-16T14:45:37-02:00",
    "client_name": "Test client 91",
    "start_date": null,
    "close_date": null,
    "is_closed": true,
    "tasks_count": 0,
    "tasks_count_progress": 0.0,
    "tasks_backlog_count": 0,
    "tasks_queued_count": 0,
    "tasks_working_on_count": 0,
    "tasks_closed_count": 0,
    "time_worked": 0,
    "time_pending": 0,
    "time_pending_backlog": 0,
    "time_pending_queued": 0,
    "time_total": 0,
    "time_progress": 0.0,
    "overdue": "on_schedule",
    "cost_worked": 0.0,
    "cost_pending": 0.0,
    "extra_costs": 0.0,
    "cost_total": 0.0,
    "over_budget": "on_budget",
    "activities_7_days_ago": 0,
    "activities_6_days_ago": 0,
    "activities_5_days_ago": 0,
    "activities_4_days_ago": 0,
    "activities_3_days_ago": 0,
    "activities_2_days_ago": 0,
    "activities_1_days_ago": 0,
    "activities_0_days_ago": 0,
    "activities": 0
  }
]
POST

/api/v1.0/projects/export

Export

Request

Route

POST /api/v1.0/projects/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "xlsx"
}

cURL

curl "https://runrun.it/api/v1.0/projects/export" -d '{"format_type":"xlsx"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/projects/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "csv"
}

cURL

curl "https://runrun.it/api/v1.0/projects/export" -d '{"format_type":"csv"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/projects/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "bad_format"
}

cURL

curl "https://runrun.it/api/v1.0/projects/export" -d '{"format_type":"bad_format"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

400

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 
GET

/api/v1.0/projects/:id

Show a Project

Request

Route

GET /api/v1.0/projects/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/projects/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 825

Body

{
  "id": 1,
  "name": "Project_A",
  "is_active": true,
  "client_id": 1,
  "budgeted_cost": 0.0,
  "desired_date": null,
  "created_at": "2018-11-16T14:47:15-02:00",
  "client_name": "Test client 95",
  "start_date": null,
  "close_date": null,
  "is_closed": true,
  "tasks_count": 0,
  "tasks_count_progress": 0.0,
  "tasks_backlog_count": 0,
  "tasks_queued_count": 0,
  "tasks_working_on_count": 0,
  "tasks_closed_count": 0,
  "time_worked": 0,
  "time_pending": 0,
  "time_pending_backlog": 0,
  "time_pending_queued": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "overdue": "on_schedule",
  "cost_worked": 0.0,
  "cost_pending": 0.0,
  "extra_costs": 0.0,
  "cost_total": 0.0,
  "over_budget": "on_budget",
  "activities_7_days_ago": 0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0
}
POST

/api/v1.0/projects/

Create a Project

Request

Route

POST /api/v1.0/projects/

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "project": {
    "name": "New Project",
    "client_id": 1
  }
}

cURL

curl "https://runrun.it/api/v1.0/projects/" -d '{"project":{"name":"New Project","client_id":1}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 827

Body

{
  "id": 1,
  "name": "New Project",
  "is_active": true,
  "client_id": 1,
  "budgeted_cost": 0.0,
  "desired_date": null,
  "created_at": "2018-11-16T14:47:30-02:00",
  "client_name": "Test client 96",
  "start_date": null,
  "close_date": null,
  "is_closed": true,
  "tasks_count": 0,
  "tasks_count_progress": 0.0,
  "tasks_backlog_count": 0,
  "tasks_queued_count": 0,
  "tasks_working_on_count": 0,
  "tasks_closed_count": 0,
  "time_worked": 0,
  "time_pending": 0,
  "time_pending_backlog": 0,
  "time_pending_queued": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "overdue": "on_schedule",
  "cost_worked": 0.0,
  "cost_pending": 0.0,
  "extra_costs": 0.0,
  "cost_total": 0.0,
  "over_budget": "on_budget",
  "activities_7_days_ago": 0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0
}
GET

/api/v1.0/projects/:id/involved_users

List users involved in a project

Involved users:

  • responsible
  • owners
  • followers

Parameters

Name Description type
id required

ID of project

integer

Request

Route

GET /api/v1.0/projects/1/involved_users

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/projects/1/involved_users" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1822

Body

[
  {
    "id": "coyote-342",
    "name": "Coyote 342",
    "email": "coyote329@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-241/coyote-342/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-241/coyote-342/regular.png",
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": false,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": false,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "8d2800040593735535a8c9dc4e736de6",
    "oid": "92a6f5b72",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 1,
    "partners_count": 1,
    "password_updated_at": "2018-11-16T14:47:46-02:00",
    "password_expired_at": null
  }
]

Time Worked

POST

/api/v1.0/reports/time_worked/export

Export

Request

Route

POST /api/v1.0/reports/time_worked/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "xlsx"
}

cURL

curl "https://runrun.it/api/v1.0/reports/time_worked/export" -d '{"format_type":"xlsx"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 
GET

/api/v1.0/reports/time_worked

List all time worked grouped and filtered by parameters

Returns a time worked list grouped by the provided group_by params. More than one attribute can be used for grouping.

Providing a client_id, project_id, project_group_id, project_subgroup_id, tag_list or type_id will return a filtered list by the given parameter.

Parameters

Name Description type default
include_capacity

Include capacity

boolean

include_untracked

Include untracked

boolean

include_others

Include others

boolean

true

expand_others

Expand others field to a non-aggregate

boolean

group_by

Attributes to group by

text

period_type

Period type. Must be one of the following: last_seven_days, current_week, last_fifteen_days, last_thirty_days, current_month, last_ninety_days, current_quarter, last_one_year, custom_range

text

last_seven_days

period_start

Period start. Only used if period_type is 'custom_range'

date

period_end

Period end. Only used if period_type is 'custom_range'

date

period_unit

Period unit. Must be one of the following: day, week, month or year

text

day

client_id

IDs of clients, separated by comma

text

project_id

IDs of projects, separated by comma

text

project_group_id

ID of project group

text

project_subgroup_id

ID of project subgroup

text

tag_list

List of task tags, separated by comma

text

type_id

IDs of task types, separated by comma

text

team_id

IDs of teams, separated by comma

text

user_id

IDs of users, separated by comma

text

Request

Route

GET /api/v1.0/reports/time_worked?include_capacity=true&include_untracked=true&group_by=date%2Cproject_id&project_id=1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

include_capacity=true
include_untracked=true
group_by=date,project_id
project_id=1

cURL

curl "https://runrun.it/api/v1.0/reports/time_worked?include_capacity=true&include_untracked=true&group_by=date%2Cproject_id&project_id=1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
meta Represents the parameters used for building the response Object
result Time Worked filtered and/or grouped by the given parameters Array of Objects
other Represents all the *other* time worked not contained on the result Array of Objects
capacity Total time on users' workweek Array of Objects
untracked Time not tracked by the system Array of Objects

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 790

Body

{
  "meta": {
    "period_start": "2018-01-31",
    "period_end": "2018-02-06",
    "unit": "day"
  },
  "result": [
    {
      "date": "2018-02-05",
      "project_id": 1,
      "project_name": "Test project 79",
      "client_id": 1,
      "client_name": "Test client 99",
      "automatic_time": 0,
      "manual_time": 72000,
      "time": 72000
    }
  ],
  "others": [
    {
      "date": "2018-02-05",
      "time": 10800
    }
  ],
  "capacity": [
    {
      "date": "2018-01-31",
      "time": 28800
    },
    {
      "date": "2018-02-01",
      "time": 28800
    },
    {
      "date": "2018-02-02",
      "time": 28800
    },
    {
      "date": "2018-02-03",
      "time": 0
    },
    {
      "date": "2018-02-04",
      "time": 0
    },
    {
      "date": "2018-02-05",
      "time": 28800
    },
    {
      "date": "2018-02-06",
      "time": 0
    }
  ],
  "untracked": [
    {
      "date": "2018-02-05",
      "time": 0
    },
    {
      "date": "2018-01-31",
      "time": 28800
    },
    {
      "date": "2018-02-01",
      "time": 28800
    },
    {
      "date": "2018-02-02",
      "time": 28800
    },
    {
      "date": "2018-02-03",
      "time": 0
    },
    {
      "date": "2018-02-04",
      "time": 0
    },
    {
      "date": "2018-02-06",
      "time": 0
    }
  ]
}

Tags

GET

/api/v1.0/tags

Query tags

Parameters

Name Description type
search_term required

Search term for tag name. For a given term will be return a list of tags that match fully or partially with tag name.

string

Request

Route

GET /api/v1.0/tags?search_term=tag

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

search_term=tag

cURL

curl "https://runrun.it/api/v1.0/tags?search_term=tag" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 49

Body

[
  {
    "name": "tag1"
  },
  {
    "name": "tag2"
  },
  {
    "name": "tag3"
  }
]

TaskAssignments

DELETE

/api/v1.0/tasks/:task_id/assignments/:id

Destroy a task assignment for another user

Destroy a task assignment.

Parameters

Name Description type default
id

ID of assignment

string

task_id required

ID of task

integer

delete_worked_time

boolean

Request

Route

DELETE /api/v1.0/tasks/1/assignments/92a6f5b72

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "delete_worked_time": false
}

cURL

curl "https://runrun.it/api/v1.0/tasks/1/assignments/92a6f5b72" -d '{"delete_worked_time":false}' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

POST

/api/v1.0/tasks/:task_id/assignments/:id/play

Play a Task

Indicate that a task is being worked on, if the responsible is currently working on a task it will be paused.

The task is eligible to be started if:

  • it's not already being working on
  • it's not closed
  • it does not have any open prerequisite tasks

Parameters

Name Description type
id

ID of assignment

string

task_id required

ID of task

integer

Request

Route

POST /api/v1.0/tasks/1/assignments/49537adb9/play

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/assignments/49537adb9/play" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 599

Body

{
  "id": "49537adb9",
  "task_id": 1,
  "assignee_id": "coyote-360",
  "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-253/coyote-360/mini.png",
  "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-253/coyote-360/regular.png",
  "team_id": null,
  "assignee_name": "Coyote 360",
  "team_name": null,
  "queue_position": 1,
  "priority": 1,
  "current_estimate_seconds": 3600,
  "time_worked": 0,
  "estimated_start_date": null,
  "estimate_updated": true,
  "start_date": "2018-11-16T14:54:06-02:00",
  "close_date": "2018-11-16T15:54:05-02:00",
  "is_closed": false,
  "reestimate_count": 0,
  "is_working_on": true
}
POST

/api/v1.0/tasks/:task_id/assignments/:id/pause

Pause a task assignment

Pause the work on a task.

The task is eligible to be paused if:

  • it's currently being working on

Parameters

Name Description type
id

ID of assignment

string

task_id required

ID of task

integer

Request

Route

POST /api/v1.0/tasks/1/assignments/49537adb9/pause

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/assignments/49537adb9/pause" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 600

Body

{
  "id": "49537adb9",
  "task_id": 1,
  "assignee_id": "coyote-363",
  "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-255/coyote-363/mini.png",
  "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-255/coyote-363/regular.png",
  "team_id": null,
  "assignee_name": "Coyote 363",
  "team_name": null,
  "queue_position": 1,
  "priority": 1,
  "current_estimate_seconds": 3600,
  "time_worked": 0,
  "estimated_start_date": "2018-11-16T14:54:39-02:00",
  "estimate_updated": true,
  "start_date": null,
  "close_date": "2018-11-16T15:54:38-02:00",
  "is_closed": false,
  "reestimate_count": 0,
  "is_working_on": false
}
POST

/api/v1.0/tasks/:task_id/assignments/:id/deliver

Deliver a task assignment

Deliver a task.

The task is eligible to be delivered if:

  • it's not already delivered
  • it does not have any open prerequisite tasks

Parameters

Name Description type
id

ID of assignment

string

task_id required

ID of task

integer

Request

Route

POST /api/v1.0/tasks/1/assignments/49537adb9/deliver

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/assignments/49537adb9/deliver" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 628

Body

{
  "id": "49537adb9",
  "task_id": 1,
  "assignee_id": "coyote-366",
  "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-257/coyote-366/mini.png",
  "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-257/coyote-366/regular.png",
  "team_id": null,
  "assignee_name": "Coyote 366",
  "team_name": null,
  "queue_position": null,
  "priority": null,
  "current_estimate_seconds": 3600,
  "time_worked": 0,
  "estimated_start_date": "2018-11-16T14:55:16-02:00",
  "estimate_updated": true,
  "start_date": "2018-11-16T14:55:16-02:00",
  "close_date": "2018-11-16T14:55:16-02:00",
  "is_closed": true,
  "reestimate_count": 0,
  "is_working_on": false
}
POST

/api/v1.0/tasks/:task_id/assignments/:id/reopen

Reopen a Task

Reopen a closed task.

IMPORTANT!!: If the task is prerequisite directly or indirectly in any task that has already been delivered or is under development, it is necessary to pause or reopen these tasks. You can set the parameter "reopen_or_pause_descendant_tasks" to automatically pause or reopen the necessary tasks. To complete this operation with success it's necessary that the current user is allowed to reopen and pause all these tasks.

The task is eligible to be reopened if:

  • it's closed
  • it's not a prerequisite of working on or closed tasks

Parameters

Name Description type
id required

ID of assignment

string

task_id required

ID of task

integer

reopen_or_pause_descendant_tasks

Force pause/reopen all descendant tasks

boolean

Request

Route

POST /api/v1.0/tasks/1/assignments/49537adb9/reopen

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/assignments/49537adb9/reopen" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 600

Body

{
  "id": "49537adb9",
  "task_id": 1,
  "assignee_id": "coyote-369",
  "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-259/coyote-369/mini.png",
  "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-259/coyote-369/regular.png",
  "team_id": null,
  "assignee_name": "Coyote 369",
  "team_name": null,
  "queue_position": 1,
  "priority": 1,
  "current_estimate_seconds": 3600,
  "time_worked": 0,
  "estimated_start_date": "2018-11-16T14:55:53-02:00",
  "estimate_updated": true,
  "start_date": null,
  "close_date": "2018-11-16T15:55:53-02:00",
  "is_closed": false,
  "reestimate_count": 0,
  "is_working_on": false
}
POST

/api/v1.0/tasks/:task_id/assignments/:id/reposition

Reposition a Task

Parameters

Name Description type
id required

ID of assignment

string

queue_position required

The new queue position on assignee user's task list

integer

Request

Route

POST /api/v1.0/tasks/3/assignments/dbfa7092b/reposition

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "queue_position": 2
}

cURL

curl "https://runrun.it/api/v1.0/tasks/3/assignments/dbfa7092b/reposition" -d '{"queue_position":2}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 600

Body

{
  "id": "dbfa7092b",
  "task_id": 3,
  "assignee_id": "coyote-372",
  "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-261/coyote-372/mini.png",
  "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-261/coyote-372/regular.png",
  "team_id": null,
  "assignee_name": "Coyote 377",
  "team_name": null,
  "queue_position": 2,
  "priority": 2,
  "current_estimate_seconds": 3600,
  "time_worked": 0,
  "estimated_start_date": "2018-11-16T15:56:17-02:00",
  "estimate_updated": true,
  "start_date": null,
  "close_date": "2018-11-16T16:56:17-02:00",
  "is_closed": false,
  "reestimate_count": 0,
  "is_working_on": false
}
POST

/api/v1.0/tasks/:task_id/assignments/:id/reestimate

Reestimate a task assignment

Parameters

Name Description type
id required

ID of assignment

string

task_id required

ID of task

integer

work_seconds required

Request

Route

POST /api/v1.0/tasks/1/assignments/49537adb9/reestimate

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "work_seconds": 118800
}

cURL

curl "https://runrun.it/api/v1.0/tasks/1/assignments/49537adb9/reestimate" -d '{"work_seconds":118800}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 600

Body

{
  "id": "49537adb9",
  "task_id": 1,
  "assignee_id": "coyote-378",
  "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-263/coyote-378/mini.png",
  "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-263/coyote-378/regular.png",
  "team_id": null,
  "assignee_name": "Coyote 378",
  "team_name": null,
  "queue_position": 1,
  "priority": 1,
  "current_estimate_seconds": 3600,
  "time_worked": 0,
  "estimated_start_date": "2018-11-16T14:56:44-02:00",
  "estimate_updated": true,
  "start_date": null,
  "close_date": "2018-11-16T15:56:44-02:00",
  "is_closed": false,
  "reestimate_count": 1,
  "is_working_on": false
}

Task Description

GET

/api/v1.0/tasks/:task_id/description

Show the task description

Show the task description.

Request

Route

GET /api/v1.0/tasks/1/description

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/description" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 53

Body

{
  "id": 1,
  "_permission_": true,
  "description": "Awesome!"
}
PUT

/api/v1.0/tasks/:task_id/description

Update the task description

Update a task description.

Parameters

Name Description type
description required

Longer description of task scope

text

_permission_

Requestor has full-view access

boolean

Request

Route

PUT /api/v1.0/tasks/1/description

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_description": {
    "created_at": null,
    "description": "Gorgeous!",
    "id": null,
    "task_id": 1,
    "updated_at": null
  }
}

cURL

curl "https://runrun.it/api/v1.0/tasks/1/description" -d '{"task_description":{"created_at":null,"description":"Gorgeous!","id":null,"task_id":1,"updated_at":null}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 54

Body

{
  "id": 1,
  "_permission_": true,
  "description": "Gorgeous!"
}

Task Statuses

GET

/api/v1.0/task_statuses

List all Task Statuses

Request

Route

GET /api/v1.0/task_statuses

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/task_statuses" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 182

Body

[
  {
    "id": 1,
    "name": "Entregue",
    "is_default": true,
    "status_group": "done",
    "is_delivered": true
  },
  {
    "id": 2,
    "name": "Avaliando",
    "is_default": false,
    "status_group": "assigned",
    "is_delivered": false
  }
]
GET

/api/v1.0/task_statuses/:id

Show a Task Status

Request

Route

GET /api/v1.0/task_statuses/3

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/task_statuses/3" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id ID of Task Status integer
name Display name of Task Status string
is_default Is a default status created by the system boolean
status_group Group of status string
is_delivered [Deprecated] Use status_group boolean

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 97

Body

{
  "id": 3,
  "name": "Task Status 7",
  "is_default": false,
  "status_group": "assigned",
  "is_delivered": false
}
POST

/api/v1.0/task_statuses

Create a Task Status

Create a task status. Only account administrators can perform this action.

Parameters

Name Description type
task_status[name] required

Display name of Task Status

string

Request

Route

POST /api/v1.0/task_statuses

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_status": {
    "name": "Task Status 8"
  }
}

cURL

curl "https://runrun.it/api/v1.0/task_statuses" -d '{"task_status":{"name":"Task Status 8"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 97

Body

{
  "id": 3,
  "name": "Task Status 8",
  "is_default": false,
  "status_group": "assigned",
  "is_delivered": false
}
PUT

/api/v1.0/task_statuses/:id

Update a Task Status

Update a task status. Only account administrators can perform this action.

Parameters

Name Description type
task_statuses[name]

Display name of Task Status

string

Request

Route

PUT /api/v1.0/task_statuses/3

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_status": {
    "name": "Release pending"
  }
}

cURL

curl "https://runrun.it/api/v1.0/task_statuses/3" -d '{"task_status":{"name":"Release pending"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 99

Body

{
  "id": 3,
  "name": "Release pending",
  "is_default": false,
  "status_group": "assigned",
  "is_delivered": false
}
DELETE

/api/v1.0/task_statuses/:id

Destroy a Task Status

Destroy a task status. Only account administrators can perform this action.

Request

Route

DELETE /api/v1.0/task_statuses/3

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/task_statuses/3" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Task Templates

GET

/api/v1.0/project_templates/:project_template_id/task_templates

List all Task Templates of this Project Template

Request

Route

GET /api/v1.0/project_templates/1/task_templates

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/project_templates/1/task_templates" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 795

Body

[
  {
    "id": 28,
    "title": "Task Template",
    "user_id": "coyote-404",
    "type_id": 7,
    "queue_position": null,
    "project_template_id": 1,
    "tag_list": "",
    "created_at": "2018-11-16T15:02:47-02:00",
    "follower_ids": [

    ],
    "responsible_id": "coyote-404",
    "team_id": null,
    "assignments": [
      {
        "id": "92a6f5b72",
        "task_template_id": 28,
        "assignee_id": "coyote-404",
        "team_id": null,
        "assignee_name": "Coyote 404",
        "team_name": null
      }
    ],
    "workflow_id": null
  },
  {
    "id": 27,
    "title": "Task Template",
    "user_id": "coyote-404",
    "type_id": 6,
    "queue_position": null,
    "project_template_id": 1,
    "tag_list": "",
    "created_at": "2018-11-16T15:02:47-02:00",
    "follower_ids": [

    ],
    "responsible_id": "coyote-404",
    "team_id": null,
    "assignments": [
      {
        "id": "49537adb9",
        "task_template_id": 27,
        "assignee_id": "coyote-404",
        "team_id": null,
        "assignee_name": "Coyote 404",
        "team_name": null
      }
    ],
    "workflow_id": null
  }
]
GET

/api/v1.0/project_templates/:project_template_id/task_templates/:id

Show a Task Template

Request

Route

GET /api/v1.0/project_templates/1/task_templates/29

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/project_templates/1/task_templates/29" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 396

Body

{
  "id": 29,
  "title": "Task Template",
  "user_id": "coyote-405",
  "type_id": 6,
  "queue_position": null,
  "project_template_id": 1,
  "tag_list": "",
  "created_at": "2018-11-16T15:03:04-02:00",
  "follower_ids": [

  ],
  "responsible_id": "coyote-405",
  "team_id": null,
  "assignments": [
    {
      "id": "49537adb9",
      "task_template_id": 29,
      "assignee_id": "coyote-405",
      "team_id": null,
      "assignee_name": "Coyote 405",
      "team_name": null
    }
  ],
  "workflow_id": null
}
POST

/api/v1.0/project_templates/:project_template_id/task_templates

Create a Task Template

Parameters

Name Description type
title required

Name of task template

string

type_id required

ID of task template type

integer

tag_list

Tags for task (separated by commas)

string

Request

Route

POST /api/v1.0/project_templates/1/task_templates

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_template": {
    "title": "Task Template",
    "type_id": 6,
    "assignments": [
      {
        "assignee_id": "coyote-406",
        "team_id": 1
      }
    ]
  }
}

cURL

curl "https://runrun.it/api/v1.0/project_templates/1/task_templates" -d '{"task_template":{"title":"Task Template","type_id":6,"assignments":[{"assignee_id":"coyote-406","team_id":1}]}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 390

Body

{
  "id": 1,
  "title": "Task Template",
  "user_id": "coyote-406",
  "type_id": 6,
  "queue_position": 1,
  "project_template_id": 1,
  "tag_list": "",
  "created_at": "2018-11-16T15:03:21-02:00",
  "follower_ids": [

  ],
  "responsible_id": null,
  "team_id": null,
  "assignments": [
    {
      "id": "49537adb9",
      "task_template_id": 1,
      "assignee_id": "coyote-406",
      "team_id": 1,
      "assignee_name": "Coyote 406",
      "team_name": "Test team 13"
    }
  ],
  "workflow_id": null
}
PUT

/api/v1.0/project_templates/:project_template_id/task_templates/:id

Update a Task Template

Request

Route

PUT /api/v1.0/project_templates/1/task_templates/31

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_template": {
    "title": "New Title",
    "type_id": 6,
    "assignments": [
      {
        "assignee_id": "coyote-409",
        "team_id": 1
      }
    ]
  }
}

cURL

curl "https://runrun.it/api/v1.0/project_templates/1/task_templates/31" -d '{"task_template":{"title":"New Title","type_id":6,"assignments":[{"assignee_id":"coyote-409","team_id":1}]}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 399

Body

{
  "id": 31,
  "title": "New Title",
  "user_id": "coyote-408",
  "type_id": 6,
  "queue_position": null,
  "project_template_id": 1,
  "tag_list": "",
  "created_at": "2018-11-16T15:03:40-02:00",
  "follower_ids": [

  ],
  "responsible_id": "coyote-408",
  "team_id": null,
  "assignments": [
    {
      "id": "92a6f5b72",
      "task_template_id": 31,
      "assignee_id": "coyote-409",
      "team_id": 1,
      "assignee_name": "Coyote 409",
      "team_name": "Test team 14"
    }
  ],
  "workflow_id": null
}
DELETE

/api/v1.0/project_templates/:project_template_id/task_templates/:id

Destroy a Task Template

Request

Route

DELETE /api/v1.0/project_templates/1/task_templates/32

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/project_templates/1/task_templates/32" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

TaskType

GET

/api/v1.0/task_types

List all task types

List all task types that the current user can view.

Request

Route

GET /api/v1.0/task_types

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/task_types" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 858

Body

[
  {
    "id": 5,
    "name": "Criação",
    "is_visible": true,
    "standard_effort": "08:00",
    "avg_delivery": 0,
    "color": "d4118b"
  },
  {
    "id": 4,
    "name": "Desenvolvimento",
    "is_visible": true,
    "standard_effort": "08:00",
    "avg_delivery": 0,
    "color": "11d42d"
  },
  {
    "id": 3,
    "name": "Orçamento",
    "is_visible": true,
    "standard_effort": "04:00",
    "avg_delivery": 0,
    "color": "d41155"
  },
  {
    "id": 2,
    "name": "Pesquisa",
    "is_visible": true,
    "standard_effort": "04:00",
    "avg_delivery": 0,
    "color": "cad411"
  },
  {
    "id": 1,
    "name": "Planejamento",
    "is_visible": true,
    "standard_effort": "16:00",
    "avg_delivery": 0,
    "color": "11d472"
  },
  {
    "id": 6,
    "name": "TaskType1",
    "is_visible": true,
    "standard_effort": "01:00",
    "avg_delivery": 0,
    "color": "FFFFFF"
  },
  {
    "id": 7,
    "name": "TaskType2",
    "is_visible": true,
    "standard_effort": "01:00",
    "avg_delivery": 0,
    "color": "FFFFFF"
  },
  {
    "id": 8,
    "name": "TaskType3",
    "is_visible": true,
    "standard_effort": "01:00",
    "avg_delivery": 0,
    "color": "FFFFFF"
  }
]
GET

/api/v1.0/task_types/:id

Show a task type

Parameters

Name Description type
id required

Id of the type

integer

Request

Route

GET /api/v1.0/task_types/6

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/task_types/6" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 105

Body

{
  "id": 6,
  "name": "TaskType1",
  "is_visible": true,
  "standard_effort": "01:00",
  "avg_delivery": 0,
  "color": "FFFFFF"
}
POST

/api/v1.0/task_types

Create a task type

Create a new task type record.

Parameters

Name Description type
type[name] required

Type name

string

type[is_visible]

Is the type visible to be chosen? Default: true

boolean

type[standard_effort]

Default effort to complete a task of this type. Default: '02:00'

string

Request

Route

POST /api/v1.0/task_types

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_type": {
    "name": "TaskType1",
    "is_visible": true,
    "standard_effort": "03:00",
    "color": "FFFFFF"
  }
}

cURL

curl "https://runrun.it/api/v1.0/task_types" -d '{"task_type":{"name":"TaskType1","is_visible":true,"standard_effort":"03:00","color":"FFFFFF"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 105

Body

{
  "id": 6,
  "name": "TaskType1",
  "is_visible": true,
  "standard_effort": "03:00",
  "avg_delivery": 0,
  "color": "FFFFFF"
}
PUT

/api/v1.0/task_types/:id

Update a task type

Update a existing task type.

Parameters

Name Description type
id required

Id of the type

integer

type[name]

Type name

string

type[is_visible]

Is the type visible to be chosen? Default: true

boolean

type[standard_effort]

Default effort to complete a task of this type. Default: '02:00'

string

Request

Route

PUT /api/v1.0/task_types/6

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_type": {
    "name": "TaskType2",
    "is_visible": false,
    "standard_effort": "04:00"
  }
}

cURL

curl "https://runrun.it/api/v1.0/task_types/6" -d '{"task_type":{"name":"TaskType2","is_visible":false,"standard_effort":"04:00"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 106

Body

{
  "id": 6,
  "name": "TaskType2",
  "is_visible": false,
  "standard_effort": "04:00",
  "avg_delivery": 0,
  "color": "FFFFFF"
}

Task Followers

GET

/api/v1.0/tasks/:task_id/followers

List all followers

Responds with an array of users following the task. The format of each user is the same as the User endpoint.

Request

Route

GET /api/v1.0/tasks/1/followers

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/followers" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1846

Body

[
  {
    "id": "coyote-416",
    "name": "Coyote 416",
    "email": "coyote403@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-290/coyote-416/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-290/coyote-416/regular.png",
    "super_compact_view": true,
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": true,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": true,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "97c0e1b0b6aec32d9853afc7a114e408",
    "oid": "49537adb9",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 1,
    "partners_count": 1,
    "password_updated_at": "2018-11-16T15:05:27-02:00",
    "password_expired_at": null
  }
]
POST

/api/v1.0/tasks/:task_id/followers

Create a Task Follower

Parameters

Name Description type
id required

ID of user to add as follower

string

Request

Route

POST /api/v1.0/tasks/1/followers

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "id": "coyote-418"
}

cURL

curl "https://runrun.it/api/v1.0/tasks/1/followers" -d '{"id":"coyote-418"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1820

Body

{
  "id": "coyote-418",
  "name": "Coyote 418",
  "email": "coyote405@acme.foo",
  "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-291/coyote-418/mini.png",
  "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-291/coyote-418/regular.png",
  "compact_side_menu": null,
  "cost_hour": 0.0,
  "is_master": false,
  "is_manager": false,
  "is_auditor": false,
  "can_create_client_project_and_task_types": false,
  "time_zone": "America/Sao_Paulo",
  "position": null,
  "on_vacation": false,
  "birthday": null,
  "phone": null,
  "gender": null,
  "marital_status": null,
  "in_company_since": null,
  "is_certified": false,
  "language": "pt-BR",
  "alt_id": "d34f0e4c8ad723432a813d134cc9b3d0",
  "oid": "92a6f5b72",
  "see_archived_clients_and_projects": null,
  "budget_manager": false,
  "shifts": [
    {
      "weekday": 0,
      "work_day": false,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 1,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 2,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 3,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 4,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 5,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 6,
      "work_day": false,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    }
  ],
  "is_mensurable": true,
  "time_tracking_mode": "smart",
  "blocked_by_time_worked_at": null,
  "demanders_count": 1,
  "partners_count": 1,
  "password_updated_at": "2018-11-16T15:05:46-02:00",
  "password_expired_at": null
}
DELETE

/api/v1.0/tasks/:task_id/followers/:id

Remove a Task Follower

Request

Route

DELETE /api/v1.0/tasks/1/followers/coyote-420

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/followers/coyote-420" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Task Workflows

GET

/api/v1.0/workflows

Show a Workflow

Parameters

Name Description type
task_id required

ID of the task the workflow belongs to

integer

Request

Route

GET /api/v1.0/workflows?task_id=1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

task_id=1

cURL

curl "https://runrun.it/api/v1.0/workflows?task_id=1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 138

Body

{
  "id": 1,
  "workable_id": 1,
  "workable_type": "Task",
  "task_id": 1,
  "current_workflow_element_id": 1,
  "is_last_element": true,
  "is_first_element": true
}
POST

/api/v1.0/workflows

Create a Workflow

The workflow is eligible to be created if:

  • the task is not closed
  • the task is not on going
  • the task does not have a workflow

Parameters

Name Description type
task_id required

ID of the task the workflow belongs to

integer

Request

Route

POST /api/v1.0/workflows

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_id": 1
}

cURL

curl "https://runrun.it/api/v1.0/workflows" -d '{"task_id":1}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 138

Body

{
  "id": 1,
  "workable_id": 1,
  "workable_type": "Task",
  "task_id": 1,
  "current_workflow_element_id": 1,
  "is_last_element": true,
  "is_first_element": true
}
DELETE

/api/v1.0/workflows

Destroy a workflow

Parameters

Name Description type
task_id required

ID of the task the workflow belongs to

integer

Request

Route

DELETE /api/v1.0/workflows

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_id": 1
}

cURL

curl "https://runrun.it/api/v1.0/workflows" -d '{"task_id":1}' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Tasks

GET

/api/v1.0/tasks

Query tasks

Returns a paginated list of tasks that the user has permission to see. The number of tasks returned are limited by limit per page and are sorted based on sort and sort_dir. Use the following Parameters to narrow and customize your query.

Parameters

Name Description type default
ids

IDs of tasks, separated by comma

string

user_id

ID of user who created the task

string

follower_id

ID of user following the task

string

project_id

ID of the project the task belongs to

integer

is_closed

True if the task is delivered

boolean

false

is_working_on

True if any assignee is working on task

boolean

sort

Sort strategy.

string

closed_date if ìs_closed=true; otherwise queue_position

sort_dir

Sort direction. Must be asc or desc

string

desc if ìs_closed=true; otherwise asc

page

The page that will be displayed. Must be equal or greater than 1

integer

1

limit

The number of objects to return per page. The value must be between 1 and 100

integer

1000

bypass_status_default

Set as true to bypass the default value of is_closed param

boolean

false

Request

Route

GET /api/v1.0/tasks?responsible_id=coyote-2&sort=close_date&sort_dir=desc&is_closed=true&project_id=2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

responsible_id=coyote-2
sort=close_date
sort_dir=desc
is_closed=true
project_id=2

cURL

curl "https://runrun.it/api/v1.0/tasks?responsible_id=coyote-2&sort=close_date&sort_dir=desc&is_closed=true&project_id=2" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 4494

Body

[
  {
    "id": 2,
    "_permission_": true,
    "title": "Improve Task API",
    "is_working_on": false,
    "user_id": "coyote-4",
    "type_id": 7,
    "project_id": 2,
    "desired_date": null,
    "desired_date_with_time": null,
    "estimated_start_date": "2018-12-12T11:00:00-02:00",
    "estimated_delivery_date": "2018-12-12T12:00:00-02:00",
    "close_date": "2018-12-12T12:00:00-02:00",
    "task_status_id": null,
    "was_reopened": false,
    "is_closed": true,
    "on_going": false,
    "tag_list": "",
    "estimate_updated": true,
    "estimated_at": "2018-12-11T20:02:14-02:00",
    "queue_position": null,
    "scheduled_start_time": null,
    "created_at": "2018-12-11T20:02:14-02:00",
    "start_date": "2018-12-12T11:00:00-02:00",
    "current_estimate_seconds": 3600,
    "current_evaluator_id": null,
    "approved": null,
    "evaluation_status": null,
    "attachments_count": 0,
    "task_tags": "{}",
    "is_scheduled": false,
    "client_name": "Test client 1",
    "project_name": "Test project 1",
    "type_name": "TaskType 2",
    "user_name": "Coyote 4",
    "task_status_name": null,
    "type_color": "FFFFFF",
    "state": "queued",
    "overdue": "on_schedule",
    "time_worked": 0,
    "time_pending": 3600,
    "time_total": 3600,
    "time_progress": 0.0,
    "activities_6_days_ago": 0,
    "activities_5_days_ago": 0,
    "activities_4_days_ago": 0,
    "activities_3_days_ago": 0,
    "activities_2_days_ago": 0,
    "activities_1_days_ago": 0,
    "activities_0_days_ago": 0,
    "activities": 0,
    "repetition_rule": null,
    "uid": 2,
    "responsible_id": "coyote-2",
    "priority": null,
    "task_state_id": null,
    "team_id": null,
    "responsible_name": "Coyote 2",
    "team_name": null,
    "task_state_name": null,
    "activities_7_days_ago": 0,
    "repetition_rule_id": null,
    "current_worked_time": 0,
    "estimated_delivery_date_updated": true,
    "last_estimated_at": "2018-12-11T20:02:14-02:00",
    "assignments": [
      {
        "id": "92a6f5b72",
        "task_id": 2,
        "assignee_id": "coyote-2",
        "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-1/coyote-2/mini.png",
        "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-1/coyote-2/regular.png",
        "team_id": null,
        "assignee_name": "Coyote 2",
        "team_name": null,
        "queue_position": 2,
        "priority": 2,
        "current_estimate_seconds": 3600,
        "time_worked": 0,
        "estimated_start_date": "2018-12-12T11:00:00-02:00",
        "estimate_updated": true,
        "start_date": null,
        "close_date": "2018-12-12T12:00:00-02:00",
        "is_closed": false,
        "reestimate_count": 0,
        "is_working_on": false
      }
    ],
    "follower_ids": [

    ],
    "workflow_id": null,
    "checklist_id": null
  },
  {
    "id": 1,
    "_permission_": true,
    "title": "Create Task API",
    "is_working_on": false,
    "user_id": "coyote-3",
    "type_id": 6,
    "project_id": 2,
    "desired_date": null,
    "desired_date_with_time": null,
    "estimated_start_date": "2018-12-12T10:00:00-02:00",
    "estimated_delivery_date": "2018-12-12T11:00:00-02:00",
    "close_date": "2018-12-12T11:00:00-02:00",
    "task_status_id": null,
    "was_reopened": false,
    "is_closed": true,
    "on_going": false,
    "tag_list": "",
    "estimate_updated": true,
    "estimated_at": "2018-12-11T20:02:14-02:00",
    "queue_position": null,
    "scheduled_start_time": null,
    "created_at": "2018-12-11T20:02:13-02:00",
    "start_date": "2018-12-12T10:00:00-02:00",
    "current_estimate_seconds": 3600,
    "current_evaluator_id": null,
    "approved": null,
    "evaluation_status": null,
    "attachments_count": 0,
    "task_tags": "{}",
    "is_scheduled": false,
    "client_name": "Test client 1",
    "project_name": "Test project 1",
    "type_name": "TaskType 1",
    "user_name": "Coyote 3",
    "task_status_name": null,
    "type_color": "FFFFFF",
    "state": "queued",
    "overdue": "on_schedule",
    "time_worked": 0,
    "time_pending": 3600,
    "time_total": 3600,
    "time_progress": 0.0,
    "activities_6_days_ago": 0,
    "activities_5_days_ago": 0,
    "activities_4_days_ago": 0,
    "activities_3_days_ago": 0,
    "activities_2_days_ago": 0,
    "activities_1_days_ago": 0,
    "activities_0_days_ago": 0,
    "activities": 0,
    "repetition_rule": null,
    "uid": 1,
    "responsible_id": "coyote-2",
    "priority": null,
    "task_state_id": null,
    "team_id": null,
    "responsible_name": "Coyote 2",
    "team_name": null,
    "task_state_name": null,
    "activities_7_days_ago": 0,
    "repetition_rule_id": null,
    "current_worked_time": 0,
    "estimated_delivery_date_updated": true,
    "last_estimated_at": "2018-12-11T20:02:14-02:00",
    "assignments": [
      {
        "id": "49537adb9",
        "task_id": 1,
        "assignee_id": "coyote-2",
        "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-1/coyote-2/mini.png",
        "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-1/coyote-2/regular.png",
        "team_id": null,
        "assignee_name": "Coyote 2",
        "team_name": null,
        "queue_position": 1,
        "priority": 1,
        "current_estimate_seconds": 3600,
        "time_worked": 0,
        "estimated_start_date": "2018-12-12T10:00:00-02:00",
        "estimate_updated": true,
        "start_date": null,
        "close_date": "2018-12-12T11:00:00-02:00",
        "is_closed": false,
        "reestimate_count": 0,
        "is_working_on": false
      }
    ],
    "follower_ids": [

    ],
    "workflow_id": null,
    "checklist_id": null
  }
]
POST

/api/v1.0/tasks/export

Export

Request

Route

POST /api/v1.0/tasks/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "xlsx"
}

cURL

curl "https://runrun.it/api/v1.0/tasks/export" -d '{"format_type":"xlsx"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/tasks/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "csv"
}

cURL

curl "https://runrun.it/api/v1.0/tasks/export" -d '{"format_type":"csv"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 

Request

Route

POST /api/v1.0/tasks/export

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "format_type": "bad_format"
}

cURL

curl "https://runrun.it/api/v1.0/tasks/export" -d '{"format_type":"bad_format"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

400

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1

Body

 
GET

/api/v1.0/tasks/:id

Show a Task

Request

Route

GET /api/v1.0/tasks/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id Task ID integer
title Task title string
_permission_ Requestor has full-view access boolean
is_working_on True if any assignee is working on task boolean
user_id ID of user who created the task string
type_id ID of the task type integer
project_id ID of the project the task belongs to integer
desired_date [Deprecated, please use `desired_date_with_time` field] Requested complete by date datetime
desired_date_with_time Requested complete by date and time datetime
estimated_start_date Date when the system estimates the task will be started datetime
estimated_delivery_date Date when the system estimates the task will be delivered datetime
close_date Date when the task was or will be delivered datetime
task_status_id ID of task status integer
was_reopened True if the task has been reopened after being delivered boolean
is_closed True if the task is delivered boolean
on_going True if the task is an ongoing task boolean
tag_list Tags for task (separated by commas) string
estimate_updated True if estimate dates have been updated after potential change boolean
estimated_at Last time when task was estimated boolean
queue_position 1-based index of position on assignee user's task list integer
scheduled_start_time Date when task was scheduled to start datetime
created_at Date when task was created datetime
start_date First time when task was worked on datetime
current_estimate_seconds Current estimated effort (in seconds) integer
current_evaluator_id ID of current evaluator for this task string
approved True if task was approved. False if task was rejected boolean
evaluation_status Evaluation status ('approved' / 'rejected' / 'pending' / null) string
attachments_count Number of attachment that belongs to task integer
task_tags Tags for task array
is_scheduled True if task is scheduled boolean
client_name Name of client string
project_name Name of project string
project_group_name Name of project group string
project_group_is_default True if the project group is default boolean
project_sub_group_name Name of project subgroup string
project_sub_group_is_default True if the project subgroup is default boolean
type_name Name of task type string
user_name Name of user who created the task string
task_status_name Name of task status string
type_color Task type color in hexadecimal format string
state Task state ('backlog', 'working_on', 'queued', 'closed') string
overdue Overdue status of the task ('on_schedule', 'soft_overdue', 'hard_overdue') string
time_worked Time (in seconds) worked in the task integer
time_pending Time (in seconds) pending in the task integer
time_total Total time (in seconds) spent in the task integer
time_progress Progress of time worked on the task float
activities_6_days_ago Time (in seconds) worked in the task 6 days ago integer
activities_5_days_ago Time (in seconds) worked in the task 5 days ago integer
activities_4_days_ago Time (in seconds) worked in the task 4 days ago integer
activities_3_days_ago Time (in seconds) worked in the task 3 days ago integer
activities_2_days_ago Time (in seconds) worked in the task 2 days ago integer
activities_1_days_ago Time (in seconds) worked in the task 1 days ago integer
activities_0_days_ago Time (in seconds) worked in the task today integer
activities Total time (in seconds) worked today and in the last 6 days integer
repetition_rule Repetition rule integer
uid [Deprecated, please use 'id' field]. ID of task integer
responsible_id [Deprecated] Use assignee_id on assignments string
priority [Deprecated] Use queue_position integer
task_state_id [Deprecated] Use task_status_id integer
team_id [Deprecated] Use team_id on assignments integer
responsible_name [Deprecated] Use assignee_name on assignments string
team_name [Deprecated] Use team_name on assignments string
task_state_name [Deprecated] Use task_status_name string
activities_7_days_ago [Deprecated] Time (in seconds) worked in the task 7 days ago integer
repetition_rule_id [Deprecated] Repetition rule id integer
current_worked_time [Deprecated] User time_worked integer
estimated_delivery_date_updated [Deprecated] Use estimate_updated boolean
last_estimated_at [Deprecated] Use estimated_at datetime
follower_ids IDs of users following this task array
workflow_id ID of associated workflow (if any) integer

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2284

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-40",
  "type_id": 6,
  "project_id": 2,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-12T10:00:00-02:00",
  "estimated_delivery_date": "2018-12-12T11:00:00-02:00",
  "close_date": "2018-12-12T11:00:00-02:00",
  "task_status_id": null,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:02:52-02:00",
  "queue_position": 1,
  "scheduled_start_time": null,
  "created_at": "2018-12-11T20:02:51-02:00",
  "start_date": "2018-12-12T10:00:00-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 11",
  "project_name": "Test project 11",
  "type_name": "TaskType 17",
  "user_name": "Coyote 40",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-39",
  "priority": 1,
  "task_state_id": null,
  "team_id": null,
  "responsible_name": "Coyote 39",
  "team_name": null,
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:02:52-02:00",
  "assignments": [
    {
      "id": "49537adb9",
      "task_id": 1,
      "assignee_id": "coyote-39",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-12/coyote-39/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-12/coyote-39/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 39",
      "team_name": null,
      "queue_position": 1,
      "priority": 1,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-12T10:00:00-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-12-12T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null,
  "unseen_since": "2018-12-11T20:02:51-02:00"
}
POST

/api/v1.0/tasks

Create a Task

Create a task. The user field will be set to the user on whose behalf the API request is issued.

Parameters

Name Description type
task[title] required

Task title

string

task[on_going] required

True if the task is an ongoing task

boolean

task[type_id] required

ID of the task type

integer

task[project_id] required

ID of the project the task belongs to

integer

task[scheduled_start_time] required

Date when task was scheduled to start

datetime

task[desired_date] required

[Deprecated, please use desired_date_with_time field] Requested complete by date

datetime

task[desired_date_with_time]

Requested complete by date and time

datetime

task[tag_list]

Tags for task (separated by commas)

string

task[assignments]

Objects of task assignments

array

task[task_prerequisite_ids]

IDs of pre-requisite tasks

array

task[follower_ids]

IDs of users to follow this task

array

task[document_ids]

IDs of Document records to attach

array

Request

Route

POST /api/v1.0/tasks

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task": {
    "desired_date": null,
    "on_going": false,
    "project_id": 2,
    "scheduled_start_time": null,
    "title": "Bla",
    "type_id": 6,
    "assignments": [
      {
        "assignee_id": "coyote-41",
        "team_id": 1
      }
    ]
  }
}

cURL

curl "https://runrun.it/api/v1.0/tasks" -d '{"task":{"desired_date":null,"on_going":false,"project_id":2,"scheduled_start_time":null,"title":"Bla","type_id":6,"assignments":[{"assignee_id":"coyote-41","team_id":1}]}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2253

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-41",
  "type_id": 6,
  "project_id": 2,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-12T10:00:00-02:00",
  "estimated_delivery_date": "2018-12-12T11:00:00-02:00",
  "close_date": "2018-12-12T11:00:00-02:00",
  "task_status_id": null,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:02:56-02:00",
  "queue_position": 1,
  "scheduled_start_time": null,
  "created_at": "2018-12-11T20:02:55-02:00",
  "start_date": "2018-12-12T10:00:00-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 12",
  "project_name": "Test project 12",
  "type_name": "TaskType 18",
  "user_name": "Coyote 41",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-41",
  "priority": 1,
  "task_state_id": null,
  "team_id": 1,
  "responsible_name": "Coyote 41",
  "team_name": "Test team 1",
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:02:56-02:00",
  "assignments": [
    {
      "id": "49537adb9",
      "task_id": 1,
      "assignee_id": "coyote-41",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-13/coyote-41/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-13/coyote-41/regular.png",
      "team_id": 1,
      "assignee_name": "Coyote 41",
      "team_name": "Test team 1",
      "queue_position": 1,
      "priority": 1,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-12T10:00:00-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-12-12T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null
}
POST

/api/v1.0/tasks/:id/play

Play a Task

Indicate that a task is being worked on, if the responsible is currently working on a task it will be paused.

The task is eligible to be started if:

  • it's not already being working on
  • it's not closed
  • it does not have any open prerequisite tasks

Parameters

Name Description type
id

Task ID

integer

Request

Route

POST /api/v1.0/tasks/1/play

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/play" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2244

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-63",
  "type_id": 6,
  "project_id": 2,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-12T10:00:00-02:00",
  "estimated_delivery_date": "2018-12-12T11:00:00-02:00",
  "close_date": "2018-12-12T11:00:00-02:00",
  "task_status_id": null,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:03:24-02:00",
  "queue_position": 1,
  "scheduled_start_time": null,
  "created_at": "2018-12-11T20:03:24-02:00",
  "start_date": "2018-12-11T20:03:24-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 21",
  "project_name": "Test project 21",
  "type_name": "TaskType 29",
  "user_name": "Coyote 63",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "working_on",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-62",
  "priority": 1,
  "task_state_id": null,
  "team_id": null,
  "responsible_name": "Coyote 62",
  "team_name": null,
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:03:24-02:00",
  "assignments": [
    {
      "id": "49537adb9",
      "task_id": 1,
      "assignee_id": "coyote-62",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-29/coyote-62/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-29/coyote-62/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 62",
      "team_name": null,
      "queue_position": 1,
      "priority": 1,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": null,
      "estimate_updated": true,
      "start_date": "2018-12-11T20:03:24-02:00",
      "close_date": "2018-12-12T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": true
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null
}
POST

/api/v1.0/tasks/:id/pause

Pause a Task

Pause the work on a task.

The task is eligible to be paused if:

  • it's currently being working on

Parameters

Name Description type
id

Task ID

integer

Request

Route

POST /api/v1.0/tasks/1/pause

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/pause" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2240

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": true,
  "user_id": "coyote-65",
  "type_id": 6,
  "project_id": 2,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": null,
  "estimated_delivery_date": "2018-12-12T11:00:00-02:00",
  "close_date": "2018-12-12T11:00:00-02:00",
  "task_status_id": null,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:03:28-02:00",
  "queue_position": 1,
  "scheduled_start_time": null,
  "created_at": "2018-12-11T20:03:27-02:00",
  "start_date": "2018-12-11T20:03:28-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 22",
  "project_name": "Test project 22",
  "type_name": "TaskType 30",
  "user_name": "Coyote 65",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-65",
  "priority": 1,
  "task_state_id": null,
  "team_id": null,
  "responsible_name": "Coyote 65",
  "team_name": null,
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:03:28-02:00",
  "assignments": [
    {
      "id": "49537adb9",
      "task_id": 1,
      "assignee_id": "coyote-64",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-30/coyote-64/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-30/coyote-64/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 64",
      "team_name": null,
      "queue_position": 1,
      "priority": 1,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-11T20:03:28-02:00",
      "estimate_updated": true,
      "start_date": "2018-12-11T20:03:27-02:00",
      "close_date": "2018-12-12T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null
}
POST

/api/v1.0/tasks/:id/change_status

Change a Task status to another

Parameters

Name Description type
id

Task ID

integer

task_status_id required

ID of task status

integer

Request

Route

POST /api/v1.0/tasks/1/change_status

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_status_id": 3
}

cURL

curl "https://runrun.it/api/v1.0/tasks/1/change_status" -d '{"task_status_id":3}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2260

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": true,
  "user_id": "coyote-67",
  "type_id": 6,
  "project_id": 2,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-12T10:00:00-02:00",
  "estimated_delivery_date": "2018-12-12T11:00:00-02:00",
  "close_date": "2018-12-12T11:00:00-02:00",
  "task_status_id": 3,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:03:31-02:00",
  "queue_position": 1,
  "scheduled_start_time": null,
  "created_at": "2018-12-11T20:03:31-02:00",
  "start_date": "2018-12-12T10:00:00-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 23",
  "project_name": "Test project 23",
  "type_name": "TaskType 31",
  "user_name": "Coyote 67",
  "task_status_name": "New task status",
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-66",
  "priority": 1,
  "task_state_id": 3,
  "team_id": null,
  "responsible_name": "Coyote 66",
  "team_name": null,
  "task_state_name": "New task status",
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:03:31-02:00",
  "assignments": [
    {
      "id": "49537adb9",
      "task_id": 1,
      "assignee_id": "coyote-66",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-31/coyote-66/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-31/coyote-66/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 66",
      "team_name": null,
      "queue_position": 1,
      "priority": 1,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-12T10:00:00-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-12-12T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null
}
POST

/api/v1.0/tasks/:id/schedule

Schedule a task

Parameters

Name Description type
id

Task ID

integer

scheduled_start_time required

Date when task was scheduled to start

datetime

Request

Route

POST /api/v1.0/tasks/1/schedule

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "scheduled_start_time": "2016-11-16T11:30:00-02:00"
}

cURL

curl "https://runrun.it/api/v1.0/tasks/1/schedule" -d '{"scheduled_start_time":"2016-11-16T11:30:00-02:00"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2269

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-71",
  "type_id": 6,
  "project_id": 2,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-11T10:00:00-02:00",
  "estimated_delivery_date": "2018-12-11T11:00:00-02:00",
  "close_date": "2018-12-11T11:00:00-02:00",
  "task_status_id": null,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:03:37-02:00",
  "queue_position": 1,
  "scheduled_start_time": "2016-11-16T11:30:00-02:00",
  "created_at": "2016-11-16T11:00:00-02:00",
  "start_date": "2018-12-11T10:00:00-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": true,
  "client_name": "Test client 25",
  "project_name": "Test project 25",
  "type_name": "TaskType 33",
  "user_name": "Coyote 71",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-70",
  "priority": null,
  "task_state_id": null,
  "team_id": null,
  "responsible_name": "Coyote 70",
  "team_name": null,
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:03:37-02:00",
  "assignments": [
    {
      "id": "49537adb9",
      "task_id": 1,
      "assignee_id": "coyote-70",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-33/coyote-70/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-33/coyote-70/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 70",
      "team_name": null,
      "queue_position": 1,
      "priority": null,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-11T10:00:00-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-12-11T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null
}
POST

/api/v1.0/tasks/:id/unschedule

Unschedule a task

Parameters

Name Description type
id

Task ID

integer

Request

Route

POST /api/v1.0/tasks/1/unschedule

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/unschedule" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2241

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-75",
  "type_id": 6,
  "project_id": 2,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-11T10:00:00-02:00",
  "estimated_delivery_date": "2018-12-11T11:00:00-02:00",
  "close_date": "2018-12-11T11:00:00-02:00",
  "task_status_id": null,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:03:46-02:00",
  "queue_position": 1,
  "scheduled_start_time": null,
  "created_at": "2016-11-16T11:00:00-02:00",
  "start_date": "2018-12-11T10:00:00-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 27",
  "project_name": "Test project 27",
  "type_name": "TaskType 35",
  "user_name": "Coyote 75",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-74",
  "priority": 1,
  "task_state_id": null,
  "team_id": null,
  "responsible_name": "Coyote 74",
  "team_name": null,
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:03:46-02:00",
  "assignments": [
    {
      "id": "49537adb9",
      "task_id": 1,
      "assignee_id": "coyote-74",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-35/coyote-74/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-35/coyote-74/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 74",
      "team_name": null,
      "queue_position": 1,
      "priority": 1,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-11T10:00:00-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-12-11T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null
}
POST

/api/v1.0/tasks/:id/deliver

Deliver a Task

Deliver a task.

The task is eligible to be delivered if:

  • it's not already delivered
  • it does not have any open prerequisite tasks

Parameters

Name Description type
id

Task ID

integer

Request

Route

POST /api/v1.0/tasks/1/deliver

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/deliver" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2276

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-77",
  "type_id": 6,
  "project_id": 2,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-12T10:00:00-02:00",
  "estimated_delivery_date": "2018-12-12T11:00:00-02:00",
  "close_date": "2018-12-11T20:03:49-02:00",
  "task_status_id": 1,
  "was_reopened": false,
  "is_closed": true,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": false,
  "estimated_at": "2018-12-11T20:03:49-02:00",
  "queue_position": null,
  "scheduled_start_time": null,
  "created_at": "2018-12-11T20:03:49-02:00",
  "start_date": "2018-12-12T10:00:00-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 28",
  "project_name": "Test project 28",
  "type_name": "TaskType 36",
  "user_name": "Coyote 77",
  "task_status_name": "Entregue",
  "type_color": "FFFFFF",
  "state": "closed",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 0,
  "time_total": 0,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-76",
  "priority": null,
  "task_state_id": 1,
  "team_id": null,
  "responsible_name": "Coyote 76",
  "team_name": null,
  "task_state_name": "Entregue",
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": false,
  "last_estimated_at": "2018-12-11T20:03:49-02:00",
  "assignments": [
    {
      "id": "49537adb9",
      "task_id": 1,
      "assignee_id": "coyote-76",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-36/coyote-76/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-36/coyote-76/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 76",
      "team_name": null,
      "queue_position": null,
      "priority": null,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-12T10:00:00-02:00",
      "estimate_updated": true,
      "start_date": "2018-12-11T20:03:49-02:00",
      "close_date": "2018-12-11T20:03:49-02:00",
      "is_closed": true,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null
}
POST

/api/v1.0/tasks/:id/reopen

Reopen a Task

Reopen a closed task.

IMPORTANT!!: If the task is prerequisite directly or indirectly in any task that has already been delivered or is under development, it is necessary to pause or reopen these tasks. You can set the parameter "reopen_or_pause_descendant_tasks" to automatically pause or reopen the necessary tasks. To complete this operation with success it's necessary that the current user is allowed to reopen and pause all these tasks.

The task is eligible to be reopened if:

  • it's closed
  • it's not a prerequisite of working on or closed tasks

Parameters

Name Description type
id required

Task ID

integer

reopen_or_pause_descendant_tasks

Force pause/reopen all descendant tasks

boolean

Request

Route

POST /api/v1.0/tasks/1/reopen

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/reopen" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2240

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-83",
  "type_id": 6,
  "project_id": 2,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-12T10:00:00-02:00",
  "estimated_delivery_date": "2018-12-12T11:00:00-02:00",
  "close_date": "2018-12-12T11:00:00-02:00",
  "task_status_id": null,
  "was_reopened": true,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:03:59-02:00",
  "queue_position": 1,
  "scheduled_start_time": null,
  "created_at": "2018-12-11T20:03:59-02:00",
  "start_date": "2018-12-12T10:00:00-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 30",
  "project_name": "Test project 30",
  "type_name": "TaskType 38",
  "user_name": "Coyote 83",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-82",
  "priority": 1,
  "task_state_id": null,
  "team_id": null,
  "responsible_name": "Coyote 82",
  "team_name": null,
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:03:59-02:00",
  "assignments": [
    {
      "id": "49537adb9",
      "task_id": 1,
      "assignee_id": "coyote-82",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-39/coyote-82/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-39/coyote-82/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 82",
      "team_name": null,
      "queue_position": 1,
      "priority": 1,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-12T10:00:00-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-12-12T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null
}
POST

/api/v1.0/tasks/:id/reposition

Reposition a Task

Parameters

Name Description type
id required

Task ID

integer

queue_position required

The new queue position on responsible user's task list

integer

Request

Route

POST /api/v1.0/tasks/4/reposition

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "queue_position": 2
}

cURL

curl "https://runrun.it/api/v1.0/tasks/4/reposition" -d '{"queue_position":2}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2243

Body

{
  "id": 4,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-85",
  "type_id": 14,
  "project_id": 6,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-12T14:00:00-02:00",
  "estimated_delivery_date": "2018-12-12T15:00:00-02:00",
  "close_date": "2018-12-12T12:00:00-02:00",
  "task_status_id": null,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:04:11-02:00",
  "queue_position": 4,
  "scheduled_start_time": null,
  "created_at": "2018-12-11T20:04:10-02:00",
  "start_date": "2018-12-12T11:00:00-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 39",
  "project_name": "Test project 39",
  "type_name": "TaskType 47",
  "user_name": "Coyote 85",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 4,
  "responsible_id": "coyote-85",
  "priority": 4,
  "task_state_id": null,
  "team_id": null,
  "responsible_name": "Coyote 85",
  "team_name": null,
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:04:11-02:00",
  "assignments": [
    {
      "id": "1254deb6e4",
      "task_id": 4,
      "assignee_id": "coyote-85",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-42/coyote-85/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-42/coyote-85/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 85",
      "team_name": null,
      "queue_position": 2,
      "priority": 2,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-12T11:00:00-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-12-12T12:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null
}
GET

/api/v1.0/tasks/unseen_activities

List unseen activities of a task

List not seen activities of a task by the current user

Parameters

Name Description type
task_ids required

List of task ids separated by comma ','

array of integers

Request

Route

GET /api/v1.0/tasks/unseen_activities?task_ids=1%2C2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

task_ids=1,2

cURL

curl "https://runrun.it/api/v1.0/tasks/unseen_activities?task_ids=1%2C2" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
task_id ID of the related task integer
has_unread_comments True if the current user has unread comments on this task boolean

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 85

Body

[
  {
    "task_id": 1,
    "has_unread_comments": false
  },
  {
    "task_id": 2,
    "has_unread_comments": false
  }
]
POST

/api/v1.0/tasks/:id/complete_workflow_step

Complete a workflow step

Parameters

Name Description type
id

Task ID

integer

Request

Route

POST /api/v1.0/tasks/1/complete_workflow_step

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/complete_workflow_step" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2239

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-92",
  "type_id": 11,
  "project_id": 3,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-12T10:00:00-02:00",
  "estimated_delivery_date": "2018-12-12T11:00:00-02:00",
  "close_date": "2018-12-12T11:00:00-02:00",
  "task_status_id": null,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:04:24-02:00",
  "queue_position": 1,
  "scheduled_start_time": null,
  "created_at": "2018-12-11T20:04:21-02:00",
  "start_date": "2018-12-12T10:00:00-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 45",
  "project_name": "Test project 45",
  "type_name": "TaskType 53",
  "user_name": "Coyote 92",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-94",
  "priority": 1,
  "task_state_id": null,
  "team_id": null,
  "responsible_name": "Coyote 94",
  "team_name": null,
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:04:24-02:00",
  "assignments": [
    {
      "id": "92a6f5b72",
      "task_id": 1,
      "assignee_id": "coyote-94",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-46/coyote-94/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-46/coyote-94/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 94",
      "team_name": null,
      "queue_position": 1,
      "priority": 1,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-12T10:00:00-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-12-12T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": 1,
  "checklist_id": null
}
POST

/api/v1.0/tasks/:id/undo_workflow_step

Undo a workflow step

Parameters

Name Description type
id

Task ID

integer

Request

Route

POST /api/v1.0/tasks/1/undo_workflow_step

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/tasks/1/undo_workflow_step" -d '' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2251

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-98",
  "type_id": 11,
  "project_id": 3,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-12T10:00:00-02:00",
  "estimated_delivery_date": "2018-12-12T11:00:00-02:00",
  "close_date": "2018-12-12T11:00:00-02:00",
  "task_status_id": null,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:04:31-02:00",
  "queue_position": 1,
  "scheduled_start_time": null,
  "created_at": "2018-12-11T20:04:28-02:00",
  "start_date": "2018-12-12T10:00:00-02:00",
  "current_estimate_seconds": 3600,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 46",
  "project_name": "Test project 46",
  "type_name": "TaskType 54",
  "user_name": "Coyote 98",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 3600,
  "time_total": 3600,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-97",
  "priority": 1,
  "task_state_id": null,
  "team_id": 1,
  "responsible_name": "Coyote 97",
  "team_name": "Test team 7",
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:04:31-02:00",
  "assignments": [
    {
      "id": "dbfa7092b",
      "task_id": 1,
      "assignee_id": "coyote-97",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-48/coyote-97/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-48/coyote-97/regular.png",
      "team_id": 1,
      "assignee_name": "Coyote 97",
      "team_name": "Test team 7",
      "queue_position": 1,
      "priority": 1,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-12T10:00:00-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-12-12T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": 1,
  "checklist_id": null
}
POST

/api/v1.0/tasks/:id/create_assignments

Create a task assignment for another user

Create a task assignment based on a task.

Parameters

Name Description type
id required

Task ID

integer

assignments

Request

Route

POST /api/v1.0/tasks/1/create_assignments

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "assignments": [
    {
      "assignee_id": "coyote-109",
      "team_id": 1
    }
  ]
}

cURL

curl "https://runrun.it/api/v1.0/tasks/1/create_assignments" -d '{"assignments":[{"assignee_id":"coyote-109","team_id":1}]}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 2861

Body

{
  "id": 1,
  "_permission_": true,
  "title": "Bla",
  "is_working_on": false,
  "user_id": "coyote-111",
  "type_id": 11,
  "project_id": 3,
  "desired_date": null,
  "desired_date_with_time": null,
  "estimated_start_date": "2018-12-12T10:00:00-02:00",
  "estimated_delivery_date": "2018-12-12T11:00:00-02:00",
  "close_date": "2018-12-12T11:00:00-02:00",
  "task_status_id": null,
  "was_reopened": false,
  "is_closed": false,
  "on_going": false,
  "tag_list": "",
  "estimate_updated": true,
  "estimated_at": "2018-12-11T20:04:48-02:00",
  "queue_position": null,
  "scheduled_start_time": null,
  "created_at": "2018-12-11T20:04:46-02:00",
  "start_date": "2018-12-12T10:00:00-02:00",
  "current_estimate_seconds": 7200,
  "current_evaluator_id": null,
  "approved": null,
  "evaluation_status": null,
  "attachments_count": 0,
  "task_tags": "{}",
  "is_scheduled": false,
  "client_name": "Test client 50",
  "project_name": "Test project 50",
  "type_name": "TaskType 58",
  "user_name": "Coyote 111",
  "task_status_name": null,
  "type_color": "FFFFFF",
  "state": "queued",
  "overdue": "on_schedule",
  "time_worked": 0,
  "time_pending": 7200,
  "time_total": 7200,
  "time_progress": 0.0,
  "activities_6_days_ago": 0,
  "activities_5_days_ago": 0,
  "activities_4_days_ago": 0,
  "activities_3_days_ago": 0,
  "activities_2_days_ago": 0,
  "activities_1_days_ago": 0,
  "activities_0_days_ago": 0,
  "activities": 0,
  "repetition_rule": null,
  "uid": 1,
  "responsible_id": "coyote-108",
  "priority": null,
  "task_state_id": null,
  "team_id": null,
  "responsible_name": "Coyote 108",
  "team_name": null,
  "task_state_name": null,
  "activities_7_days_ago": 0,
  "repetition_rule_id": null,
  "current_worked_time": 0,
  "estimated_delivery_date_updated": true,
  "last_estimated_at": "2018-12-11T20:04:48-02:00",
  "assignments": [
    {
      "id": "92a6f5b72",
      "task_id": 1,
      "assignee_id": "coyote-109",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-53/coyote-109/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-53/coyote-109/regular.png",
      "team_id": 1,
      "assignee_name": "Coyote 109",
      "team_name": "Test team 8",
      "queue_position": 1,
      "priority": 1,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-12T10:00:00-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-12-12T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    },
    {
      "id": "49537adb9",
      "task_id": 1,
      "assignee_id": "coyote-108",
      "assignee_avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-53/coyote-108/mini.png",
      "assignee_avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-53/coyote-108/regular.png",
      "team_id": null,
      "assignee_name": "Coyote 108",
      "team_name": null,
      "queue_position": 1,
      "priority": 1,
      "current_estimate_seconds": 3600,
      "time_worked": 0,
      "estimated_start_date": "2018-12-12T10:00:00-02:00",
      "estimate_updated": true,
      "start_date": null,
      "close_date": "2018-12-12T11:00:00-02:00",
      "is_closed": false,
      "reestimate_count": 0,
      "is_working_on": false
    }
  ],
  "follower_ids": [

  ],
  "workflow_id": null,
  "checklist_id": null
}

Team Authorizations

GET

/api/v1.0/task_types/:task_type_id/team_authorizations

List all team authorizations of a task_type

List all teams authorizations of a task_type that the current_user can view"

Request

Route

GET /api/v1.0/task_types/6/team_authorizations

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/task_types/6/team_authorizations" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 203

Body

[
  {
    "id": 17,
    "all_users": true,
    "team_id": 1,
    "team_authorizable_id": 6,
    "team_authorizable_type": "TaskType"
  },
  {
    "id": 6,
    "all_users": true,
    "team_id": null,
    "team_authorizable_id": 6,
    "team_authorizable_type": "TaskType"
  }
]
POST

/api/v1.0/task_types/:task_type_id/team_authorizations

Create a team authorization of a task_type

Parameters

Name Description type
team_authorization[all_users]

Authorize all teams?

boolean

team_authorization[team_id]

Team ID

integer

Request

Route

POST /api/v1.0/task_types/6/team_authorizations

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "team_authorization": {
    "all_users": false,
    "team_id": 1
  }
}

cURL

curl "https://runrun.it/api/v1.0/task_types/6/team_authorizations" -d '{"team_authorization":{"all_users":false,"team_id":1}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 99

Body

{
  "id": 7,
  "all_users": false,
  "team_id": 1,
  "team_authorizable_id": 6,
  "team_authorizable_type": "TaskType"
}
DELETE

/api/v1.0/task_types/:task_type_id/team_authorizations/:id

Destroy a team authorization of a task_type

Parameters

Name Description type
id required

ID of Team Authorization

integer

Request

Route

DELETE /api/v1.0/task_types/6/team_authorizations/17

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/task_types/6/team_authorizations/17" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

GET

/api/v1.0/clients/:client_id/team_authorizations

List all team authorizations of a client

List all teams authorizations of a client that the current_user can view"

Request

Route

GET /api/v1.0/clients/1/team_authorizations

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/clients/1/team_authorizations" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 199

Body

[
  {
    "id": 6,
    "all_users": true,
    "team_id": null,
    "team_authorizable_id": 1,
    "team_authorizable_type": "Client"
  },
  {
    "id": 17,
    "all_users": true,
    "team_id": 1,
    "team_authorizable_id": 1,
    "team_authorizable_type": "Client"
  }
]
POST

/api/v1.0/clients/:client_id/team_authorizations

Create a team authorization of a client

Parameters

Name Description type
team_authorization[all_users]

Authorize all teams?

boolean

team_authorization[team_id]

Team ID

integer

Request

Route

POST /api/v1.0/clients/1/team_authorizations

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "team_authorization": {
    "all_users": false,
    "team_id": 1
  }
}

cURL

curl "https://runrun.it/api/v1.0/clients/1/team_authorizations" -d '{"team_authorization":{"all_users":false,"team_id":1}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 97

Body

{
  "id": 7,
  "all_users": false,
  "team_id": 1,
  "team_authorizable_id": 1,
  "team_authorizable_type": "Client"
}
DELETE

/api/v1.0/clients/:client_id/team_authorizations/:id

Destroy a team authorization of a client

Parameters

Name Description type
id required

ID of Team Authorization

integer

Request

Route

DELETE /api/v1.0/clients/1/team_authorizations/17

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/clients/1/team_authorizations/17" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Teams

GET

/api/v1.0/teams

List all teams

List all teams that the current user can view.

Request

Route

GET /api/v1.0/teams

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/teams" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 132

Body

[
  {
    "id": 1,
    "name": "Team1",
    "master_user_id": "coyote-557",
    "master_user_name": "Coyote 557",
    "cost_center": null,
    "user_ids": [
      "coyote-557"
    ]
  }
]
GET

/api/v1.0/teams

List all teams by id

List all teams that the current user can view.

Request

Route

GET /api/v1.0/teams?ids=1%2C2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

ids=1,2

cURL

curl "https://runrun.it/api/v1.0/teams?ids=1%2C2" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 263

Body

[
  {
    "id": 1,
    "name": "Team1",
    "master_user_id": "coyote-560",
    "master_user_name": "Coyote 560",
    "cost_center": null,
    "user_ids": [
      "coyote-560"
    ]
  },
  {
    "id": 2,
    "name": "Team2",
    "master_user_id": "coyote-560",
    "master_user_name": "Coyote 560",
    "cost_center": null,
    "user_ids": [
      "coyote-560"
    ]
  }
]
GET

/api/v1.0/teams

Search by term

List all teams that the current user can view.

Request

Route

GET /api/v1.0/teams?search_term=Team2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

search_term=Team2

cURL

curl "https://runrun.it/api/v1.0/teams?search_term=Team2" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 132

Body

[
  {
    "id": 2,
    "name": "Team2",
    "master_user_id": "coyote-561",
    "master_user_name": "Coyote 561",
    "cost_center": null,
    "user_ids": [
      "coyote-561"
    ]
  }
]
GET

/api/v1.0/teams/:id

Show a team

Parameters

Name Description type
id required

Id of the team

integer

Request

Route

GET /api/v1.0/teams/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/teams/1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 130

Body

{
  "id": 1,
  "name": "Team1",
  "master_user_id": "coyote-562",
  "master_user_name": "Coyote 562",
  "cost_center": null,
  "user_ids": [
    "coyote-562"
  ]
}
POST

/api/v1.0/teams

Create a team

Create a new team record with a master user.

Parameters

Name Description type
team[name] required

Name of the team

string

team[master_user_id]

Id of the user team leader. Default: current user id

string

Request

Route

POST /api/v1.0/teams

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "team": {
    "name": "Team1",
    "master_user_id": "coyote-563"
  }
}

cURL

curl "https://runrun.it/api/v1.0/teams" -d '{"team":{"name":"Team1","master_user_id":"coyote-563"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 130

Body

{
  "id": 1,
  "name": "Team1",
  "master_user_id": "coyote-563",
  "master_user_name": "Coyote 563",
  "cost_center": null,
  "user_ids": [
    "coyote-563"
  ]
}
PUT

/api/v1.0/teams/:id

Update a team

Update a existing team.

Parameters

Name Description type
id required

Id of the team

integer

team[name]

Name of the team

string

team[master_user_id]

Id of the user team leader. Default: current user id

string

Request

Route

PUT /api/v1.0/teams/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "team": {
    "name": "Team2",
    "master_user_id": "coyote-565"
  }
}

cURL

curl "https://runrun.it/api/v1.0/teams/1" -d '{"team":{"name":"Team2","master_user_id":"coyote-565"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 143

Body

{
  "id": 1,
  "name": "Team2",
  "master_user_id": "coyote-565",
  "master_user_name": "Coyote 565",
  "cost_center": null,
  "user_ids": [
    "coyote-565",
    "coyote-564"
  ]
}
DELETE

/api/v1.0/teams/:id

Destroy a team

Parameters

Name Description type
id required

Id of the team

integer

Request

Route

DELETE /api/v1.0/teams/1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/teams/1" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

GET

/api/v1.0/teams/:id/board_summary

Show the team board summary

Board summary information

Parameters

Name Description type
id required

Id of the team

integer

Request

Route

GET /api/v1.0/teams/1/board_summary

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/teams/1/board_summary" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 56

Body

{
  "open_tasks": 0,
  "working_tasks": 0,
  "ratings_average": 0.0
}
GET

/api/v1.0/teams/:id/load

Show the team load

Team load information

Parameters

Name Description type
id required

Id of the team

integer

Request

Route

GET /api/v1.0/teams/1/load

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/teams/1/load" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 52

Body

{
  "id": 1,
  "team_average": 0.0,
  "enterprise_average": 0.0
}
POST

/api/v1.0/teams/:id/add_member

Add a user to team

Parameters

Name Description type
team[id] required

Id of the team

integer

user_id required

New team member id

string

team_partnership

Flag to make the new team member and other members, partners

boolean

Request

Route

POST /api/v1.0/teams/1/add_member

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "user_id": "coyote-570"
}

cURL

curl "https://runrun.it/api/v1.0/teams/1/add_member" -d '{"user_id":"coyote-570"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 143

Body

{
  "id": 1,
  "name": "Team1",
  "master_user_id": "coyote-569",
  "master_user_name": "Coyote 569",
  "cost_center": null,
  "user_ids": [
    "coyote-570",
    "coyote-569"
  ]
}
POST

/api/v1.0/teams/:id/remove_member

Remove a user from team

Parameters

Name Description type
team[id] required

Id of the team

integer

user_id required

Team member id

string

Request

Route

POST /api/v1.0/teams/1/remove_member

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "user_id": "coyote-572"
}

cURL

curl "https://runrun.it/api/v1.0/teams/1/remove_member" -d '{"user_id":"coyote-572"}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 130

Body

{
  "id": 1,
  "name": "Team1",
  "master_user_id": "coyote-571",
  "master_user_name": "Coyote 571",
  "cost_center": null,
  "user_ids": [
    "coyote-571"
  ]
}

User Statistics

GET

/api/v1.0/user_statistics/:id

Get user's RR-Rating®

Get a user's RR-Rating® by id

Request

Route

GET /api/v1.0/user_statistics/coyote-576

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/user_statistics/coyote-576" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
total User's RR-Rating integer
created_at Calculated as of datetime
total_month_variation Variation from last month integer

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 83

Body

{
  "total": 341,
  "created_at": "2018-11-16T15:33:10-02:00",
  "total_month_variation": null
}

Users

GET

/api/v1.0/users

List all Users

List all enterprise users based on the priviligies of the user_token owner.

Permission JSON attribute Response
Flagged as Administrator on Runrun.it is_master: true return a list of all users
Not flagged as Administrator on Runrun.it is_master: false return a list of teammates

Request

Route

GET /api/v1.0/users

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/users" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id User's ID string
name User's full name string
email User's email string
avatar_url User's chosen profile photo url
avatar_large_url User's chosen profile photo url
super_compact_view *internal usage* boolean
compact_side_menu *internal usage* boolean
cost_hour Current user cost per hour decimal
is_master User is an administrator boolean
is_manager User is a manager boolean
is_auditor User is an auditor boolean
can_create_client_project_and_task_types User has permission to create client, projects and task types boolean
time_zone IANA Time Zone Database zone name string
position Job position in company string
on_vacation User currently on vacation boolean
birthday User's birthday date
phone User phone string
gender User gender string
marital_status User marital status string
in_company_since Joining date in company date
is_certified Whether the user has passed Runrun.it certification boolean
language User preference language string
alt_id Constant size ID (internal use only) string
oid Constant size ID (internal use only) string
see_archived_clients_and_projects Admin decides either to see or not archived clients and projects boolean
budget_manager Can edit project extra costs boolean
shifts User shifts array
is_mensurable Can process RR Ratings? boolean
time_tracking_mode Current Time tracking mode, 'smart' for automatic tracking time based on shift or 'manual' string
blocked_by_time_worked_at When the user is blocked for being out of the acceptable worked time defined by the company datetime
demanders_count Demanders count integer
partners_count Partners count integer
password_updated_at Last time user password was updated datetime
password_expired_at Time when the user password was considered expired datetime

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 3667

Body

[
  {
    "id": "coyote-578",
    "name": "Coyote 578",
    "email": "coyote565@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-385/coyote-578/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-385/coyote-578/regular.png",
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": false,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": false,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "1608a3b27c00ffdac2939a766bf0e166",
    "oid": "92a6f5b72",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 1,
    "partners_count": 1,
    "password_updated_at": "2018-11-16T15:33:28-02:00",
    "password_expired_at": null
  },
  {
    "id": "coyote-577",
    "name": "Coyote 577",
    "email": "coyote564@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-385/coyote-577/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-385/coyote-577/regular.png",
    "super_compact_view": true,
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": true,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": true,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "f1b65dbf64858e5a3558c0cfd5293589",
    "oid": "49537adb9",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 1,
    "partners_count": 1,
    "password_updated_at": "2018-11-16T15:33:27-02:00",
    "password_expired_at": null
  }
]
GET

/api/v1.0/users

List all Users by ids

List all enterprise users based on the priviligies of the user_token owner.

Permission JSON attribute Response
Flagged as Administrator on Runrun.it is_master: true return a list of all users
Not flagged as Administrator on Runrun.it is_master: false return a list of teammates

Request

Route

GET /api/v1.0/users?ids=coyote-579%2Ccoyote-580

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

ids=coyote-579,coyote-580

cURL

curl "https://runrun.it/api/v1.0/users?ids=coyote-579%2Ccoyote-580" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id User's ID string
name User's full name string
email User's email string
avatar_url User's chosen profile photo url
avatar_large_url User's chosen profile photo url
super_compact_view *internal usage* boolean
compact_side_menu *internal usage* boolean
cost_hour Current user cost per hour decimal
is_master User is an administrator boolean
is_manager User is a manager boolean
is_auditor User is an auditor boolean
can_create_client_project_and_task_types User has permission to create client, projects and task types boolean
time_zone IANA Time Zone Database zone name string
position Job position in company string
on_vacation User currently on vacation boolean
birthday User's birthday date
phone User phone string
gender User gender string
marital_status User marital status string
in_company_since Joining date in company date
is_certified Whether the user has passed Runrun.it certification boolean
language User preference language string
alt_id Constant size ID (internal use only) string
oid Constant size ID (internal use only) string
see_archived_clients_and_projects Admin decides either to see or not archived clients and projects boolean
budget_manager Can edit project extra costs boolean
shifts User shifts array
is_mensurable Can process RR Ratings? boolean
time_tracking_mode Current Time tracking mode, 'smart' for automatic tracking time based on shift or 'manual' string
blocked_by_time_worked_at When the user is blocked for being out of the acceptable worked time defined by the company datetime
demanders_count Demanders count integer
partners_count Partners count integer
password_updated_at Last time user password was updated datetime
password_expired_at Time when the user password was considered expired datetime

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 3667

Body

[
  {
    "id": "coyote-580",
    "name": "Coyote 580",
    "email": "coyote567@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-386/coyote-580/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-386/coyote-580/regular.png",
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": false,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": false,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "ebcd6c4d4c09f013d37605a2238795c9",
    "oid": "92a6f5b72",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 1,
    "partners_count": 1,
    "password_updated_at": "2018-11-16T15:33:47-02:00",
    "password_expired_at": null
  },
  {
    "id": "coyote-579",
    "name": "Coyote 579",
    "email": "coyote566@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-386/coyote-579/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-386/coyote-579/regular.png",
    "super_compact_view": true,
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": true,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": true,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "17e793f6c822af36608df8963b9dd0b6",
    "oid": "49537adb9",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 1,
    "partners_count": 1,
    "password_updated_at": "2018-11-16T15:33:46-02:00",
    "password_expired_at": null
  }
]
GET

/api/v1.0/users

List all Users by team id

List all enterprise users based on the priviligies of the user_token owner.

Permission JSON attribute Response
Flagged as Administrator on Runrun.it is_master: true return a list of all users
Not flagged as Administrator on Runrun.it is_master: false return a list of teammates

Request

Route

GET /api/v1.0/users?team_id=1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

team_id=1

cURL

curl "https://runrun.it/api/v1.0/users?team_id=1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id User's ID string
name User's full name string
email User's email string
avatar_url User's chosen profile photo url
avatar_large_url User's chosen profile photo url
super_compact_view *internal usage* boolean
compact_side_menu *internal usage* boolean
cost_hour Current user cost per hour decimal
is_master User is an administrator boolean
is_manager User is a manager boolean
is_auditor User is an auditor boolean
can_create_client_project_and_task_types User has permission to create client, projects and task types boolean
time_zone IANA Time Zone Database zone name string
position Job position in company string
on_vacation User currently on vacation boolean
birthday User's birthday date
phone User phone string
gender User gender string
marital_status User marital status string
in_company_since Joining date in company date
is_certified Whether the user has passed Runrun.it certification boolean
language User preference language string
alt_id Constant size ID (internal use only) string
oid Constant size ID (internal use only) string
see_archived_clients_and_projects Admin decides either to see or not archived clients and projects boolean
budget_manager Can edit project extra costs boolean
shifts User shifts array
is_mensurable Can process RR Ratings? boolean
time_tracking_mode Current Time tracking mode, 'smart' for automatic tracking time based on shift or 'manual' string
blocked_by_time_worked_at When the user is blocked for being out of the acceptable worked time defined by the company datetime
demanders_count Demanders count integer
partners_count Partners count integer
password_updated_at Last time user password was updated datetime
password_expired_at Time when the user password was considered expired datetime

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 3667

Body

[
  {
    "id": "coyote-583",
    "name": "Coyote 583",
    "email": "coyote570@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-387/coyote-583/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-387/coyote-583/regular.png",
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": false,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": false,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "cf5f7989e38d088e0d5da734405b818b",
    "oid": "92a6f5b72",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 1,
    "partners_count": 1,
    "password_updated_at": "2018-11-16T15:34:05-02:00",
    "password_expired_at": null
  },
  {
    "id": "coyote-582",
    "name": "Coyote 582",
    "email": "coyote569@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-387/coyote-582/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-387/coyote-582/regular.png",
    "super_compact_view": true,
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": true,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": true,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "26a1f2aac714335e236cc379f8df9b62",
    "oid": "49537adb9",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 1,
    "partners_count": 1,
    "password_updated_at": "2018-11-16T15:34:05-02:00",
    "password_expired_at": null
  }
]
GET

/api/v1.0/users

List all Users by a search term

List all enterprise users based on the priviligies of the user_token owner.

Permission JSON attribute Response
Flagged as Administrator on Runrun.it is_master: true return a list of all users
Not flagged as Administrator on Runrun.it is_master: false return a list of teammates

Request

Route

GET /api/v1.0/users?search_term=Coyote+600

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

search_term=Coyote 600

cURL

curl "https://runrun.it/api/v1.0/users?search_term=Coyote+600" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id User's ID string
name User's full name string
email User's email string
avatar_url User's chosen profile photo url
avatar_large_url User's chosen profile photo url
super_compact_view *internal usage* boolean
compact_side_menu *internal usage* boolean
cost_hour Current user cost per hour decimal
is_master User is an administrator boolean
is_manager User is a manager boolean
is_auditor User is an auditor boolean
can_create_client_project_and_task_types User has permission to create client, projects and task types boolean
time_zone IANA Time Zone Database zone name string
position Job position in company string
on_vacation User currently on vacation boolean
birthday User's birthday date
phone User phone string
gender User gender string
marital_status User marital status string
in_company_since Joining date in company date
is_certified Whether the user has passed Runrun.it certification boolean
language User preference language string
alt_id Constant size ID (internal use only) string
oid Constant size ID (internal use only) string
see_archived_clients_and_projects Admin decides either to see or not archived clients and projects boolean
budget_manager Can edit project extra costs boolean
shifts User shifts array
is_mensurable Can process RR Ratings? boolean
time_tracking_mode Current Time tracking mode, 'smart' for automatic tracking time based on shift or 'manual' string
blocked_by_time_worked_at When the user is blocked for being out of the acceptable worked time defined by the company datetime
demanders_count Demanders count integer
partners_count Partners count integer
password_updated_at Last time user password was updated datetime
password_expired_at Time when the user password was considered expired datetime

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1846

Body

[
  {
    "id": "coyote-600",
    "name": "Coyote 600",
    "email": "coyote587@acme.foo",
    "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-391/coyote-600/mini.png",
    "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-391/coyote-600/regular.png",
    "super_compact_view": true,
    "compact_side_menu": null,
    "cost_hour": 0.0,
    "is_master": true,
    "is_manager": false,
    "is_auditor": false,
    "can_create_client_project_and_task_types": true,
    "time_zone": "America/Sao_Paulo",
    "position": null,
    "on_vacation": false,
    "birthday": null,
    "phone": null,
    "gender": null,
    "marital_status": null,
    "in_company_since": null,
    "is_certified": false,
    "language": "pt-BR",
    "alt_id": "5348adc9b5c33a49aaf96afed9391d3f",
    "oid": "49537adb9",
    "see_archived_clients_and_projects": null,
    "budget_manager": false,
    "shifts": [
      {
        "weekday": 0,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 1,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 2,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 3,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 4,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 5,
        "work_day": true,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      },
      {
        "weekday": 6,
        "work_day": false,
        "shift_start": "10:00:00",
        "lunch_start": "12:00:00",
        "lunch_end": "13:00:00",
        "shift_end": "19:00:00"
      }
    ],
    "is_mensurable": true,
    "time_tracking_mode": "smart",
    "blocked_by_time_worked_at": null,
    "demanders_count": 1,
    "partners_count": 1,
    "password_updated_at": "2018-11-16T15:35:48-02:00",
    "password_expired_at": null
  }
]
GET

/api/v1.0/users/:user_id

Get a user by id

Get a user by id

Parameters

Name Description type
user_id required

User's ID

string

Request

Route

GET /api/v1.0/users/coyote-603

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/users/coyote-603" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id User's ID string
name User's full name string
email User's email string
avatar_url User's chosen profile photo url
avatar_large_url User's chosen profile photo url
super_compact_view *internal usage* boolean
compact_side_menu *internal usage* boolean
cost_hour Current user cost per hour decimal
is_master User is an administrator boolean
is_manager User is a manager boolean
is_auditor User is an auditor boolean
can_create_client_project_and_task_types User has permission to create client, projects and task types boolean
time_zone IANA Time Zone Database zone name string
position Job position in company string
on_vacation User currently on vacation boolean
birthday User's birthday date
phone User phone string
gender User gender string
marital_status User marital status string
in_company_since Joining date in company date
is_certified Whether the user has passed Runrun.it certification boolean
language User preference language string
alt_id Constant size ID (internal use only) string
oid Constant size ID (internal use only) string
see_archived_clients_and_projects Admin decides either to see or not archived clients and projects boolean
budget_manager Can edit project extra costs boolean
shifts User shifts array
is_mensurable Can process RR Ratings? boolean
time_tracking_mode Current Time tracking mode, 'smart' for automatic tracking time based on shift or 'manual' string
blocked_by_time_worked_at When the user is blocked for being out of the acceptable worked time defined by the company datetime
demanders_count Demanders count integer
partners_count Partners count integer
password_updated_at Last time user password was updated datetime
password_expired_at Time when the user password was considered expired datetime

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1820

Body

{
  "id": "coyote-603",
  "name": "Coyote 603",
  "email": "coyote590@acme.foo",
  "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-392/coyote-603/mini.png",
  "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-392/coyote-603/regular.png",
  "compact_side_menu": null,
  "cost_hour": 0.0,
  "is_master": false,
  "is_manager": false,
  "is_auditor": false,
  "can_create_client_project_and_task_types": false,
  "time_zone": "America/Sao_Paulo",
  "position": null,
  "on_vacation": false,
  "birthday": null,
  "phone": null,
  "gender": null,
  "marital_status": null,
  "in_company_since": null,
  "is_certified": false,
  "language": "pt-BR",
  "alt_id": "b3b6bebb8b8d10bf983299a4b57e3645",
  "oid": "92a6f5b72",
  "see_archived_clients_and_projects": null,
  "budget_manager": false,
  "shifts": [
    {
      "weekday": 0,
      "work_day": false,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 1,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 2,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 3,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 4,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 5,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 6,
      "work_day": false,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    }
  ],
  "is_mensurable": true,
  "time_tracking_mode": "smart",
  "blocked_by_time_worked_at": null,
  "demanders_count": 1,
  "partners_count": 1,
  "password_updated_at": "2018-11-16T15:36:07-02:00",
  "password_expired_at": null
}
POST

/api/v1.0/users

Create a user

Create a user on an existing account. Upon creation a temporary password will be created and sent to the new user by email. Any locale settings (language, time zone, etc.) will be the same as the user issuing the API call. If the account has reached the maximum number of users a 403 Forbidden will be returned. The make_my_partner and make_everybody_mutual_partners flags are a convenience for when you may wish to assign tasks to the new user immediately (the same can be accomplished with the Partners API calls).

Parameters

Name Description type
user[name] required

User's full name

string

user[email] required

User's email

string

make_my_partner

Flag to make the new user a partner of the creating user

boolean

make_everybody_mutual_partners

Flag to make the new user a mutual partner of everybody in enterprise. If not set, defaults to enterprise's configuration

boolean

Request

Route

POST /api/v1.0/users

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "user": {
    "name": "Jon Smith",
    "email": "john@smith.com"
  }
}

cURL

curl "https://runrun.it/api/v1.0/users" -d '{"user":{"name":"Jon Smith","email":"john@smith.com"}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1876

Body

{
  "id": "jon-smith",
  "name": "Jon Smith",
  "email": "john@smith.com",
  "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-393/jon-smith/050f08b1920c247d086b1ecaa51d90b6mini.png",
  "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-393/jon-smith/050f08b1920c247d086b1ecaa51d90b6regular.png",
  "compact_side_menu": null,
  "cost_hour": 0.0,
  "is_master": false,
  "is_manager": false,
  "is_auditor": false,
  "can_create_client_project_and_task_types": false,
  "time_zone": "America/Sao_Paulo",
  "position": null,
  "on_vacation": false,
  "birthday": null,
  "phone": null,
  "gender": null,
  "marital_status": null,
  "in_company_since": null,
  "is_certified": false,
  "language": "pt-BR",
  "alt_id": "b575bbfa44e8fa696ea6e6dd8d51d82f",
  "oid": "92a6f5b72",
  "see_archived_clients_and_projects": null,
  "budget_manager": false,
  "shifts": [
    {
      "weekday": 0,
      "work_day": false,
      "shift_start": "09:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "12:30:00",
      "shift_end": "17:00:00"
    },
    {
      "weekday": 1,
      "work_day": true,
      "shift_start": "09:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "12:30:00",
      "shift_end": "17:00:00"
    },
    {
      "weekday": 2,
      "work_day": true,
      "shift_start": "09:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "12:30:00",
      "shift_end": "17:00:00"
    },
    {
      "weekday": 3,
      "work_day": true,
      "shift_start": "09:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "12:30:00",
      "shift_end": "17:00:00"
    },
    {
      "weekday": 4,
      "work_day": true,
      "shift_start": "09:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "12:30:00",
      "shift_end": "17:00:00"
    },
    {
      "weekday": 5,
      "work_day": true,
      "shift_start": "09:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "12:30:00",
      "shift_end": "17:00:00"
    },
    {
      "weekday": 6,
      "work_day": false,
      "shift_start": "09:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "12:30:00",
      "shift_end": "17:00:00"
    }
  ],
  "is_mensurable": true,
  "time_tracking_mode": "smart",
  "blocked_by_time_worked_at": null,
  "demanders_count": 2,
  "partners_count": 2,
  "password_updated_at": "2018-11-16T15:36:25-02:00",
  "password_expired_at": null
}
PUT

/api/v1.0/users/:id

Update a user

Update a user

Parameters

Name Description type
user[id] required

User's ID

string

Request

Route

PUT /api/v1.0/users/jon-smith

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "user": {
    "name": "Steve Jobs",
    "time_zone": "Asia/Brunei"
  }
}

cURL

curl "https://runrun.it/api/v1.0/users/jon-smith" -d '{"user":{"name":"Steve Jobs","time_zone":"Asia/Brunei"}}' -X PUT \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 1809

Body

{
  "id": "jon-smith",
  "name": "Steve Jobs",
  "email": "coyote603@acme.foo",
  "avatar_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-400/jon-smith/mini.png",
  "avatar_large_url": "https://s3.amazonaws.com/runrunit_dev/avatars/acme-400/jon-smith/regular.png",
  "compact_side_menu": null,
  "cost_hour": 0.0,
  "is_master": true,
  "is_manager": false,
  "is_auditor": false,
  "can_create_client_project_and_task_types": true,
  "time_zone": "Asia/Brunei",
  "position": null,
  "on_vacation": false,
  "birthday": null,
  "phone": null,
  "gender": null,
  "marital_status": null,
  "in_company_since": null,
  "is_certified": false,
  "language": "pt-BR",
  "alt_id": "84e1eb0b656d2b68a2967ecee0e85323",
  "oid": "92a6f5b72",
  "see_archived_clients_and_projects": null,
  "budget_manager": false,
  "shifts": [
    {
      "weekday": 0,
      "work_day": false,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 1,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 2,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 3,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 4,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 5,
      "work_day": true,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    },
    {
      "weekday": 6,
      "work_day": false,
      "shift_start": "10:00:00",
      "lunch_start": "12:00:00",
      "lunch_end": "13:00:00",
      "shift_end": "19:00:00"
    }
  ],
  "is_mensurable": true,
  "time_tracking_mode": "smart",
  "blocked_by_time_worked_at": null,
  "demanders_count": 1,
  "partners_count": 1,
  "password_updated_at": "2018-01-01T00:00:00-02:00",
  "password_expired_at": null
}

Work Periods

GET

/api/v1.0/work_periods

List all work periods

List all work periods. If a user_id or task_id is supplied, only work periods for the given user and/or task will be returned. starting_from, starting_before, ending_from and ending_before can be used to specify a date window. The default period is 1 month if not specified.

Parameters

Name Description type
work_period[task_id]

ID of task

integer

work_period[user_id]

ID of user who did the work

integer

work_period[starting_from]
work_period[starting_before]
work_period[ending_from]
work_period[ending_before]

Request

Route

GET /api/v1.0/work_periods?task_id=1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

task_id=1

cURL

curl "https://runrun.it/api/v1.0/work_periods?task_id=1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 111

Body

[
  {
    "id": 1,
    "task_id": 1,
    "start": "2014-01-08T15:00:00-02:00",
    "end": null,
    "user_id": "coyote-629",
    "worked_time": 3600
  }
]
GET

/api/v1.0/work_periods/:id

Show a Work Period

Request

Route

GET /api/v1.0/work_periods/1?task_id=1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

task_id=1

cURL

curl "https://runrun.it/api/v1.0/work_periods/1?task_id=1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Response Fields

Name Description type
id ID of timesheet integer
task_id ID of task integer
start Date time that user start working on the task datetime
end Date time that user stop working on the task datetime
user_id ID of user who did the work integer
worked_time Amount of time that user worked on the task in seconds integer

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 132

Body

{
  "id": 1,
  "task_id": 1,
  "start": "2014-01-08T15:00:00-02:00",
  "end": "2014-01-08T16:00:00-02:00",
  "user_id": "coyote-631",
  "worked_time": 3600
}

Workflow Elements

GET

/api/v1.0/workflows/:workflow_id/workflow_elements

List workflow elements

Parameters

Name Description type
workflow_id required

ID of workflow

integer

Request

Route

GET /api/v1.0/workflows/1/workflow_elements

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/workflows/1/workflow_elements" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 389

Body

[
  {
    "id": 1,
    "workflow_id": 1,
    "order": 1,
    "is_current": true,
    "is_completed": false,
    "current": true,
    "completed": false,
    "completed_at": null,
    "started_at": "2018-11-16T15:42:53-02:00",
    "team_id": null,
    "user_id": "coyote-633"
  },
  {
    "id": 2,
    "workflow_id": 1,
    "order": 1,
    "is_current": false,
    "is_completed": false,
    "current": false,
    "completed": false,
    "completed_at": null,
    "started_at": null,
    "team_id": 1,
    "user_id": "coyote-634"
  }
]
GET

/api/v1.0/workflows/:workflow_id/workflow_elements/:id

Show a workflow element

Parameters

Name Description type
id required

ID of workflow element

integer

workflow_id required

ID of workflow

integer

Request

Route

GET /api/v1.0/workflows/1/workflow_elements/2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/workflows/1/workflow_elements/2" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 181

Body

{
  "id": 2,
  "workflow_id": 1,
  "order": 2,
  "is_current": false,
  "is_completed": false,
  "current": false,
  "completed": false,
  "completed_at": null,
  "started_at": null,
  "team_id": 1,
  "user_id": "coyote-638"
}
POST

/api/v1.0/workflows/:workflow_id/workflow_elements

Create a workflow element

Parameters

Name Description type
workflow_id required

ID of workflow

integer

user_id required

User ID

string

team_id

Team ID of the user

integer

order

Order of the element on workflow

integer

Request

Route

POST /api/v1.0/workflows/1/workflow_elements

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "workflow_element": {
    "user_id": "coyote-642",
    "team_id": 1,
    "order": 2
  }
}

cURL

curl "https://runrun.it/api/v1.0/workflows/1/workflow_elements" -d '{"workflow_element":{"user_id":"coyote-642","team_id":1,"order":2}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 181

Body

{
  "id": 2,
  "workflow_id": 1,
  "order": 2,
  "is_current": false,
  "is_completed": false,
  "current": false,
  "completed": false,
  "completed_at": null,
  "started_at": null,
  "team_id": 1,
  "user_id": "coyote-642"
}
POST

/api/v1.0/workflows/:workflow_id/workflow_elements/:id/reorder

Reorder a workflow element

Parameters

Name Description type
id required

ID of workflow element

integer

workflow_id required

ID of workflow

integer

order

Order of the element on workflow

integer

Request

Route

POST /api/v1.0/workflows/1/workflow_elements/3/reorder

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "order": 2
}

cURL

curl "https://runrun.it/api/v1.0/workflows/1/workflow_elements/3/reorder" -d '{"order":2}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 181

Body

{
  "id": 3,
  "workflow_id": 1,
  "order": 2,
  "is_current": false,
  "is_completed": false,
  "current": false,
  "completed": false,
  "completed_at": null,
  "started_at": null,
  "team_id": 1,
  "user_id": "coyote-649"
}
DELETE

/api/v1.0/workflows/:workflow_id/workflow_elements/:id

Destroy a workflow element

Parameters

Name Description type
id required

ID of workflow element

integer

workflow_id required

ID of workflow

integer

Request

Route

DELETE /api/v1.0/workflows/1/workflow_elements/2

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

cURL

curl "https://runrun.it/api/v1.0/workflows/1/workflow_elements/2" -d '' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

Workflows

GET

/api/v1.0/workflows

Show a task workflow

Parameters

Name Description
task_id required

ID of the task the workflow belongs to

Request

Route

GET /api/v1.0/workflows?task_id=1

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

task_id=1

cURL

curl "https://runrun.it/api/v1.0/workflows?task_id=1" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 138

Body

{
  "id": 1,
  "workable_id": 1,
  "workable_type": "Task",
  "task_id": 1,
  "current_workflow_element_id": 1,
  "is_last_element": true,
  "is_first_element": true
}
POST

/api/v1.0/workflows

Create a task workflow

Parameters

Name Description
task_id required

ID of the task the workflow will be associated

Request

Route

POST /api/v1.0/workflows

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_id": 1,
  "workflow": {
  }
}

cURL

curl "https://runrun.it/api/v1.0/workflows" -d '{"task_id":1,"workflow":{}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 138

Body

{
  "id": 1,
  "workable_id": 1,
  "workable_type": "Task",
  "task_id": 1,
  "current_workflow_element_id": 1,
  "is_last_element": true,
  "is_first_element": true
}
DELETE

/api/v1.0/workflows

Destroy task workflow

Parameters

Name Description
task_id required

ID of the task the workflow belongs to

Request

Route

DELETE /api/v1.0/workflows

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_id": 1
}

cURL

curl "https://runrun.it/api/v1.0/workflows" -d '{"task_id":1}' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers

GET

/api/v1.0/workflows

Show a task_template workflow

Parameters

Name Description
task_template_id required

ID of the task_template the workflow belongs to

Request

Route

GET /api/v1.0/workflows?task_template_id=33

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Query Parameters

task_template_id=33

cURL

curl "https://runrun.it/api/v1.0/workflows?task_template_id=33" -X GET \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

200

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 160

Body

{
  "id": 1,
  "workable_id": 33,
  "workable_type": "TaskTemplate",
  "task_template_id": 33,
  "current_workflow_element_id": null,
  "is_last_element": true,
  "is_first_element": true
}
POST

/api/v1.0/workflows

Create a task_template workflow

Parameters

Name Description
task_template_id required

ID of the task_template the workflow will be associated

Request

Route

POST /api/v1.0/workflows

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_template_id": 34,
  "workflow": {
  }
}

cURL

curl "https://runrun.it/api/v1.0/workflows" -d '{"task_template_id":34,"workflow":{}}' -X POST \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

201

Headers

Content-Type: application/json; charset=utf-8
Content-Length: 160

Body

{
  "id": 1,
  "workable_id": 34,
  "workable_type": "TaskTemplate",
  "task_template_id": 34,
  "current_workflow_element_id": null,
  "is_last_element": true,
  "is_first_element": true
}
DELETE

/api/v1.0/workflows

Destroy task_template workflow

Parameters

Name Description
task_template_id required

ID of the task_template the workflow belongs to

Request

Route

DELETE /api/v1.0/workflows

Headers

App-Key: 1a219437eab893dc115509bb85e06d77
User-Token: 9flMUzLxQtxohKGZjU5
Content-Type: application/json
Host: example.org

Body

{
  "task_template_id": 36
}

cURL

curl "https://runrun.it/api/v1.0/workflows" -d '{"task_template_id":36}' -X DELETE \
	-H "App-Key: 1a219437eab893dc115509bb85e06d77" \
	-H "User-Token: 9flMUzLxQtxohKGZjU5" \
	-H "Content-Type: application/json"

Response

Simulated Response

Status

204

Headers