Get users assigned to projects
GET https://YOURACCOUNT.harvestapp.com/projects/{PROJECTID}/user_assignments
You can filter by updated_since
. To show only the user assignments that have been updated since 2010-09-25 18:30
, pass the UTC date time value (URL encoded). Check out the example below.
GET https://YOURACCOUNT.harvestapp.com/projects/{PROJECTID}/user_assignments?updated_since=2015-09-25+18%3A30
HTTP Response: 200 OK
Examples
Example request in
Postman
<?xml version="1.0" encoding="UTF-8"?>
<user-assignments type= "array" >
<user-assignment>
<user-id type= "integer" > 508343</user-id>
<project-id type= "integer" > 5198193</project-id>
<is-project-manager type= "boolean" > true</is-project-manager>
<deactivated type= "boolean" > false</deactivated>
<hourly-rate type= "decimal" > 0.0</hourly-rate>
<id type= "integer" > 39918789</id>
<budget type= "decimal" nil= "true" />
<created-at type= "dateTime" > 2014-03-12T15:35:35Z</created-at>
<updated-at type= "dateTime" > 2014-07-15T16:33:05Z</updated-at>
<estimate nil= "true" />
</user-assignment>
</user-assignments>
[
{
"user_assignment" : {
"user_id" : 508343 ,
"project_id" : 5198193 ,
"is_project_manager" : true ,
"deactivated" : false ,
"hourly_rate" : 0 ,
"id" : 39918789 ,
"budget" : null ,
"created_at" : "2014-03-12T15:35:35Z" ,
"updated_at" : "2014-07-15T16:33:05Z" ,
"estimate" : null
}
}
]
Get a user assignment
GET https://YOURACCOUNT.harvestapp.com/projects/{PROJECTID}/user_assignments/{USERASSIGNMENTID}
HTTP Response: 200 OK
Examples
Example request in
Postman
<?xml version="1.0" encoding="UTF-8"?>
<user-assignment>
<user-id type= "integer" > 508343</user-id>
<project-id type= "integer" > 5198193</project-id>
<is-project-manager type= "boolean" > true</is-project-manager>
<deactivated type= "boolean" > false</deactivated>
<hourly-rate type= "decimal" > 0.0</hourly-rate>
<id type= "integer" > 39918789</id>
<budget type= "decimal" nil= "true" />
<created-at type= "dateTime" > 2014-03-12T15:35:35Z</created-at>
<updated-at type= "dateTime" > 2014-07-15T16:33:05Z</updated-at>
<estimate nil= "true" />
</user-assignment>
{
"user_assignment" : {
"user_id" : 508343 ,
"project_id" : 5198193 ,
"is_project_manager" : true ,
"deactivated" : false ,
"hourly_rate" : 0 ,
"id" : 39918789 ,
"budget" : null ,
"created_at" : "2014-03-12T15:35:35Z" ,
"updated_at" : "2014-07-15T16:33:05Z" ,
"estimate" : null
}
}
Assign a user to a project
POST https://YOURACCOUNT.harvestapp.com/projects/{PROJECTID}/user_assignments
To assign a user to a project, you’ll need to send the user’s ID in your request. Format it like the example below.
A successful call will return:
Location: /projects/{PROJECT_ID}/user_assignments/{NEW_USER_ASSIGNMENT_ID}
HTTP Response: 201 Created
Examples
<?xml version="1.0" encoding="UTF-8"?>
<user>
<id type= "integer" > 508343</id>
</user>
{
"user" : {
"id" : 508343
}
}
Remove a user from a project
DELETE https://YOURACCOUNT.harvestapp.com/projects/{PROJECT_ID}/user_assignments/{USER_ASSIGNMENT_ID}
Note that if the user has recorded hours against the project Harvest will archive the assignment record instead of deleting it. From the end result there is no difference between archiving or deletion, but if you need to make a difference Harvest will reply with a custom Hint header if deletion did not occur.
HTTP Response: 200 OK
Updating user assignments
PUT https://YOURACCOUNT.harvestapp.com/projects/{PROJECT_ID}/user_assignments/{USER_ASSIGNMENT_ID}
No need to include attributes that you’d rather not update — the user assignment will keep the current value if you do not specify a new value.
Examples
Example request in
Postman
<?xml version="1.0" encoding="UTF-8"?>
<user-assignment>
<user-id type= "integer" > 508343</user-id>
<project-id type= "integer" > 5198193</project-id>
<is-project-manager type= "boolean" > true</is-project-manager>
<deactivated type= "boolean" > false</deactivated>
<hourly-rate type= "decimal" > 0.0</hourly-rate>
</user-assignment>
{
"user_assignment" : {
"user_id" : 508343 ,
"project_id" : 5198193 ,
"is_project_manager" : true ,
"deactivated" : false ,
"hourly_rate" : 0
}
}