Resources

  
USERS 
list all users GET /users
get a user GET /user/:id
  
PROJECTS 
list all projects GET /projects
get a project GET /project/:id
  
ITERATIONS 
list all iterations GET /project/:id/iterations
create an iteration POST /project/:id/iterations
  
USER STORIES 
list all user stories GET /project/:id/userstories
create a user story POST /project/:id/userstories
list all user stories in current iteration GET /project/:id/iteration/current/userstories
create a user story in current iteration POST /project/:id/iteration/current/userstories
list all user stories in an iteration GET /iteration/:id/userstories
create a user story in an iteration POST /iteration/:id/userstories
get a user story GET /userstory/:id
update a user story PUT /userstory/:id
delete a user story DELETE /userstory/:id
  
TASKS 
list all tasks for user story GET /userstory/:id/tasks
create a task POST /userstory/:id/tasks
get a task GET /task/:id
update a task PUT /task/:id
delete a task DELETE /task/:id
  
COMMENTS 
get user story comments GET /userstory/:id/comments
add user story comment POST /userstory/:id/comments
get task comments GET /task/:id/comments
add task comment POST /task/:id/comments


Users

List all users

GET /users
RESPONSE:
[
  {
    "id": "abc123",
    "username": "alice",
    "name": "Alice",
    "active": true
  }
]


Get a user

GET /user/:id
RESPONSE:
{
  "id": "abc123",
  "username": "alice",
  "name": "Alice",
  "active": true
}


List all projects

GET /projects
RESPONSE:
{
  "id": "155ce346a4e5441af5c3484c2236c845",
  "code": "c1",
  "name": "first project",
  "active": true
}


Get a project

GET /project/:id
RESPONSE:
{
  "id": "155ce346a4e5441af5c3484c2236c845",
  "code": "c1",
  "name": "first project",
  "active": true,
  "description": '<p><strong>cool</strong> project</p>',
  "descriptionRaw": '*cool* project',
  "startDate": "2014-08-19T22:00:00Z",
  "targetFinishDate": "2015-08-19T22:00:00Z",
  "taskStatuses": [
    {
      "id": "a21942f632a77cd16f093db5b9b28fab",
      "name": "PENDING"
    },
    {
      "id": "3353c61204bbaf614b1143f0cbddb92a",
      "name": "IN PROGRESS"
    },
    {
      "id": "31f43aece83568a8b8c137dec446c0c8",
      "name": "COMPLETED"
    }
  ]
}


List all iterations

GET /project/:id/iterations
RESPONSE:
[
  {
    "id": "c14c42175e07cb4a2c1ae9f90df10e49",
    "name": "Sprint 3",
    "goal": "implement great stuff",
    "startDate":"2014-08-19T22:00:00Z",
    "duration": 10,
    "position": 2,
    "plannedVelocity": 12
  }
]


Create an iteration

POST /project/:id/iterations
INPUT:
FieldTypeDetails
namestringRequired.
goalstring 
startDatestringRequired.
durationnumberRequired.
positionnumber 
plannedVelocitynumber 
{
  "name": "Sprint 4",
  "goal": "implement great stuff",
  "startDate": "2014-08-19T00:00:00Z",
  "duration": 10,
  "position": 2,
  "plannedVelocity": 12
}
RESPONSE:
{
	id: '4a2c1ae9f90df10e49c14c42175e07cb'
}

List all user stories


GET /project/:id/userstories
RESPONSE:
[
  {
    "id": "56",
    "name": "as a user",
    "iteration": {
      "id": "3644a468b2540bddd54c7d5b3a28d58c"
    },
    "position": 3,
    "tags": ["hot", "new"]
  }
]


Create a user story

POST /project/:id/userstories
INPUT:
FieldTypeDetails
namestringRequired.
descriptionstring 
tagsarray 
priority Required.
estimatedEffortnumber 
colorstringCan be one of 'white', 'yellow', 'orange', 'red', 'green', 'blue'
owner  
acceptingUser  
acceptanceStatus Can be one of 'PENDING', 'ACCEPTED', 'REJECTED'
RESPONSE:
{
  "name": "as a user",
  "description": "a feature",
  "tags": ["hot", "new"],
  "priority": {
    "id": 1
  },
  "estimatedEffort": 2,
  "color": "blue",
  "owner": {
    "id": "d2b0269ef93442e5cd1b5a6cfa52ac65"
  },
  "acceptingUser": {
    "id": "d2b0269ef93442e5cd1b5a6cfa52ac65"
  },
  "acceptanceStatus": "ACCEPTED"
}


List all user stories in current iteration

GET /project/:id/iteration/current/userstories
RESPONSE:
[
  {
    "id": "56",
    "name": "as a user",
    "iteration": {
      "id": "3644a468b2540bddd54c7d5b3a28d58c"
    },
    "position": 3,
    "tags": ["hot", "new"]
  }
]


Create a user story in current iteration

POST /project/:id/iteration/current/userstories
INPUT:
FieldTypeDetails
namestringRequired.
descriptionstring 
tagsarray 
priority Required.
estimatedEffortnumber 
colorstringCan be one of 'white', 'yellow', 'orange', 'red', 'green', 'blue'
owner  
acceptingUser  
acceptanceStatus Can be one of 'PENDING', 'ACCEPTED', 'REJECTED'
RESPONSE:
{
  "name": "as a user",
  "description": "a feature",
  "tags": ["hot", "new"],
  "priority": {
    "id": 1
  },
  "estimatedEffort": 2,
  "color": "blue",
  "owner": {
    "id": "d2b0269ef93442e5cd1b5a6cfa52ac65"
  },
  "acceptingUser": {
    "id": "d2b0269ef93442e5cd1b5a6cfa52ac65"
  },
  "acceptanceStatus": "ACCEPTED"
}


List all user stories in an iteration

GET /project/:id/iteration/userstories
RESPONSE:
[
  {
    "id": "56",
    "name": "as a user",
    "iteration": {
      "id": "3644a468b2540bddd54c7d5b3a28d58c"
    },
    "position": 3,
    "tags": ["hot", "new"]
  }
]


Create a user story in an iteration

POST /project/:id/iteration/userstories
INPUT:
FieldTypeDetails
namestringRequired.
descriptionstring 
tagsarray 
priority Required.
estimatedEffortnumber 
colorstringCan be one of 'white', 'yellow', 'orange', 'red', 'green', 'blue'
owner  
acceptingUser  
acceptanceStatus Can be one of 'PENDING', 'ACCEPTED', 'REJECTED'

{
  "name": "as a user",
  "description": "a feature",
  "tags": ["hot", "new"],
  "priority": {
    "id": 1
  },
  "estimatedEffort": 2,
  "color": "blue",
  "owner": {
    "id": "d2b0269ef93442e5cd1b5a6cfa52ac65"
  },
  "acceptingUser": {
    "id": "d2b0269ef93442e5cd1b5a6cfa52ac65"
  },
  "acceptanceStatus": "ACCEPTED"
}
RESPONSE:
{
  id: '63'
}


Get a user story

GET /userstory/:id
RESPONSE:
{
  "id": "56",
  "name": "as a user",
  "description": "<p><strong>a feature</strong></p>",
  "descriptionRaw": "*a feature*",
  "iteration": {
    "id": "3644a468b2540bddd54c7d5b3a28d58c"
  },
  "position": 3,
  "tags": ["hot", "new"],
  "priority": {
    "id": 1,
    "name": "must have",
    "priority": 1
  },
  "estimatedEffort": 2,
  "comments": [
    {
      "authorName": "me",
      "dateCreated": "2014-08-19T22:00:00Z",
      "body": "commented"
    }
  ],
  "color": "yellow",
  "owner": {
    "id": "d2b0269ef93442e5cd1b5a6cfa52ac65",
    "name": "Alice",
    "username": "alice",
    "email": "alice@example.com",
    "active":true
  },
  "acceptingUser": {
    "id": "d2b0269ef93442e5cd1b5a6cfa52ac65",
    "name": "Alice",
    "username": "alice",
    "email": "alice@example.com",
    "active": true
  },
  "acceptanceStatus": "PENDING"
}


Update a user story

PUT /userstory/:id
INPUT:
FieldTypeDetails
namestringRequired.
descriptionstring 
tagsarray 
priority Required.
estimatedEffortnumber 
colorstringCan be one of 'white', 'yellow', 'orange', 'red', 'green', 'blue'
owner  
acceptingUser  
acceptanceStatus Can be one of 'PENDING', 'ACCEPTED', 'REJECTED'

{
  "name": "as a user",
  "description": "a feature",
  "tags": ["hot", "new"],
  "priority": {
    "id": 2
  },
  "estimatedEffort": 2,
  "color": "blue",
  "owner": {
    "id": "d2b0269ef93442e5cd1b5a6cfa52ac65"
  },
  "acceptingUser": {
    "id": "d2b0269ef93442e5cd1b5a6cfa52ac65"
  },
  "acceptanceStatus": "ACCEPTED"
}


Delete a user story

DELETE /userstory/:id


List all tasks for user story

GET /userstory/:id/tasks
RESPONSE:
{
  "id": "14",
  "name": "implement",
  "status": {
    "id": "10342ef5930e6c301715c2abd5065c4b",
    "name": "pending"
  }
}


Create a task

POST /userstory/:id/tasks
INPUT:
FieldTypeDetails
namestringRequired.
descriptionstring 
status  
assignedUsers  

{
  "name": "implement a feature",
  "description": "a feature",
  "status": {
    "id": "10342ef5930e6c301715c2abd5065c4b"
  },
  "assignedUsers": [
    {
      "id": "d2b0269ef93442e5cd1b5a6cfa52ac65"
    }
  ]
}
RESPONSE:
{
  "id": "15"
}


Update a task

PUT /task/:id
INPUT:
FieldTypeDetails
namestringRequired.
descriptionstring 
status  
assignedUsers  

{
  "name": "implement a feature",
  "description": "a feature",
  "status": {
    "id": "10342ef5930e6c301715c2abd5065c4b"
  },
  "assignedUsers": [
    {
      "id": "d2b0269ef93442e5cd1b5a6cfa52ac65"
    }
  ]
}


Delete a task

DELETE /task/:id


Get user story comments

GET /userstory/:id/comments
RESPONSE:
[
  {
    "id": "173e62420b0c0901ca2b75b42a36e114",
    "dateCreated": "2014-08-24T22:00:00Z",
    "authorName": "Alice",
    "body": "Nice feature"
  }
]


Add user story comment

POST /userstory/:id/comments
INPUT:
FieldTypeDetails
bodystringRequired.

"body": "New feature"
RESPONSE:
{
  "id": "ca2b75b42a36e114173e62420b0c0901"
}


Get task comments

GET /task/:id/comments
RESPONSE:
[
  {
    "id": "173e62420b0c0901ca2b75b42a36e114",
    "dateCreated": "2014-08-24T22:00:00Z",
    "authorName": "Alice",
    "body": "Nice feature"
  }
]


Add task comment

POST /task/:id/comments
INPUT:
FieldTypeDetails
bodystringRequired.

"body": "New feature"
RESPONSE:
{
  "id": "ca2b75b42a36e114173e62420b0c0901"
}