AgileZen API Documentation

Projects

A project represents a body of work that a team works on in AgileZen. Each project has a collection of stories, a workflow composed of one or more phases, and a group of users representing the team. Please note that it is currently not possible to create projects via the REST API. Please use the AgileZen application itself to create new projects.

Endpoints

List projects

GET https://agilezen.com/api/v1/projects

Returns a list of projects of which the authenticating user is a member.

Supports: Enrichments, Filters, Pagination

{
  "page": 1,
  "pageSize": 100,
  "totalPages": 1,
  "totalItems": 2,
  "items": [
    {
      "id": 1,
      "name": "Sudden Valley",
      "description": "I can see myself marinating a chicken in that.",
      "createTime": "2011-02-17T18:47:16",
      "owner": {
        "id": 1,
        "name": "Gob Bluth",
        "userName": "gob",
        "email": "Gob@bluth.com"
      }
    },
    {
      "id": 2,
      "name": "Chicken Dance",
      "description": "Caw-ca-caw-ca-ca-caw!",
      "createTime": "2011-02-18T14:24:42",
      "owner": {
        "id": 1,
        "name": "Gob Bluth",
        "userName": "gob",
        "email": "Gob@bluth.com"
      }
    }
  ]
}
<?xml version="1.0" encoding="utf-8"?>
<projects>
  <items>
    <project>
      <createTime>2011-02-17T18:47:16</createTime>
      <description>I can see myself marinating a chicken in that.</description>
      <id>1</id>
      <name>Sudden Valley</name>
      <owner>
        <email>Gob@bluth.com</email>
        <id>1</id>
        <name>Gob Bluth</name>
        <userName>gob</userName>
      </owner>
    </project>
    <project>
      <createTime>2011-02-18T14:24:42</createTime>
      <description>Caw-ca-caw-ca-ca-caw!</description>
      <id>2</id>
      <name>Chicken Dance</name>
      <owner>
        <email>Gob@bluth.com</email>
        <id>1</id>
        <name>Gob Bluth</name>
        <userName>gob</userName>
      </owner>
    </project>
  </items>
  <page>1</page>
  <pageSize>100</pageSize>
  <totalItems>2</totalItems>
  <totalPages>1</totalPages>
</projects>

Get a single project

GET https://agilezen.com/api/v1/projects/{projectid}

Returns a single project by ID.

Requires Read access on the project.
Supports: Enrichments

{
  "id": 1,
  "name": "Sudden Valley",
  "description": "I can see myself marinating a chicken in that.",
  "createTime": "2011-02-17T18:47:16",
  "owner": {
    "id": 1,
    "name": "Gob Bluth",
    "userName": "gob",
    "email": "Gob@bluth.com"
  }
}
<?xml version="1.0" encoding="utf-8"?>
<project>
  <createTime>2011-02-17T18:47:16</createTime>
  <description>I can see myself marinating a chicken in that.</description>
  <id>1</id>
  <name>Sudden Valley</name>
  <owner>
    <email>Gob@bluth.com</email>
    <id>1</id>
    <name>Gob Bluth</name>
    <userName>gob</userName>
  </owner>
</project>

Update a project

PUT https://agilezen.com/api/v1/projects/{projectid}

Modifies a single project’s metadata.

Requires Admin access on the project.
Supports: Enrichments

The request’s data should be an object with any of the following properties. You don’t need to specify all of the properties – just the ones you want to modify.

PropertyTypeDescription
namestringThe name of the project
descriptionstringA short description of the project
detailsstringA Markdown-formatted free-form description of the project with no length limit
owneruserThe owner of the project
{
  "id": 1,
  "name": "Sudden Valley",
  "description": "I can see myself marinating a chicken in that.",
  "createTime": "2011-02-17T18:47:16",
  "owner": {
    "id": 1,
    "name": "Gob Bluth",
    "userName": "gob",
    "email": "Gob@bluth.com"
  }
}
<?xml version="1.0" encoding="utf-8"?>
<project>
  <createTime>2011-02-17T18:47:16</createTime>
  <description>I can see myself marinating a chicken in that.</description>
  <id>1</id>
  <name>Sudden Valley</name>
  <owner>
    <email>Gob@bluth.com</email>
    <id>1</id>
    <name>Gob Bluth</name>
    <userName>gob</userName>
  </owner>
</project>

Project Membership Endpoints

List members within a project

GET https://agilezen.com/api/v1/projects/{projectid}/members

Retrieves the list of members from the specified project.

Requires Read access on the project.
Supports: Enrichments, Filters, Pagination

{
  "page": 1,
  "pageSize": 100,
  "totalPages": 1,
  "totalItems": 8,
  "items": [
    {
      "id": 1,
      "name": "Gob Bluth",
      "userName": "gob",
      "email": "Gob@bluth.com"
    },
    {
      "id": 2,
      "name": "Michael Bluth",
      "userName": "Michael",
      "email": "Michael@bluth.com"
    },
    {
      "id": 3,
      "name": "Lucille Bluth",
      "userName": "lucille",
      "email": "Lucille@bluth.com"
    },
    {
      "id": 4,
      "name": "Lindsay Funke",
      "userName": "lindsay",
      "email": "Lindsay@funke.com"
    },
    {
      "id": 5,
      "name": "Tobias Funke",
      "userName": "tobias",
      "email": "Tobias@funke.com"
    },
    {
      "id": 6,
      "name": "George Michael Bluth",
      "userName": "georgemichael",
      "email": "georgemichael@bluth.com"
    },
    {
      "id": 7,
      "name": "Maeby Funke",
      "userName": "maeby",
      "email": "maeby@funke.com"
    },
    {
      "id": 8,
      "name": "Buster Bluth",
      "userName": "buster",
      "email": "Buster@bluth.com"
    }
  ]
}
<?xml version="1.0" encoding="utf-8"?>
<users>
  <items>
    <user>
      <bio />
      <createTime />
      <email>Gob@bluth.com</email>
      <id>1</id>
      <name>Gob Bluth</name>
      <userName>gob</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Michael@bluth.com</email>
      <id>2</id>
      <name>Michael Bluth</name>
      <userName>Michael</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Lucille@bluth.com</email>
      <id>3</id>
      <name>Lucille Bluth</name>
      <userName>lucille</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Lindsay@funke.com</email>
      <id>4</id>
      <name>Lindsay Funke</name>
      <userName>lindsay</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Tobias@funke.com</email>
      <id>5</id>
      <name>Tobias Funke</name>
      <userName>tobias</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>georgemichael@bluth.com</email>
      <id>6</id>
      <name>George Michael Bluth</name>
      <userName>georgemichael</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>maeby@funke.com</email>
      <id>7</id>
      <name>Maeby Funke</name>
      <userName>maeby</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Buster@bluth.com</email>
      <id>8</id>
      <name>Buster Bluth</name>
      <userName>buster</userName>
    </user>
  </items>
  <page>1</page>
  <pageSize>100</pageSize>
  <totalItems>8</totalItems>
  <totalPages>1</totalPages>
</users>

Add a user to a project

POST https://agilezen.com/api/v1/projects/{projectid}/members

Adds a member to the specified project.

Requires Admin access on the project.
Supports: Enrichments

The request data should be the reference syntax for users. If you exceed the limit of collaborators for your account, AgileZen will return a 402 HTTP response code.

On success, returns the list of members added for the specified project.

{
  "page": 1,
  "pageSize": 100,
  "totalPages": 1,
  "totalItems": 8,
  "items": [
    {
      "id": 1,
      "name": "Gob Bluth",
      "userName": "gob",
      "email": "Gob@bluth.com"
    },
    {
      "id": 2,
      "name": "Michael Bluth",
      "userName": "Michael",
      "email": "Michael@bluth.com"
    },
    {
      "id": 3,
      "name": "Lucille Bluth",
      "userName": "lucille",
      "email": "Lucille@bluth.com"
    },
    {
      "id": 4,
      "name": "Lindsay Funke",
      "userName": "lindsay",
      "email": "Lindsay@funke.com"
    },
    {
      "id": 5,
      "name": "Tobias Funke",
      "userName": "tobias",
      "email": "Tobias@funke.com"
    },
    {
      "id": 6,
      "name": "George Michael Bluth",
      "userName": "georgemichael",
      "email": "georgemichael@bluth.com"
    },
    {
      "id": 7,
      "name": "Maeby Funke",
      "userName": "maeby",
      "email": "maeby@funke.com"
    },
    {
      "id": 8,
      "name": "Buster Bluth",
      "userName": "buster",
      "email": "Buster@bluth.com"
    }
  ]
}
<?xml version="1.0" encoding="utf-8"?>
<users>
  <items>
    <user>
      <bio />
      <createTime />
      <email>Gob@bluth.com</email>
      <id>1</id>
      <name>Gob Bluth</name>
      <userName>gob</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Michael@bluth.com</email>
      <id>2</id>
      <name>Michael Bluth</name>
      <userName>Michael</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Lucille@bluth.com</email>
      <id>3</id>
      <name>Lucille Bluth</name>
      <userName>lucille</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Lindsay@funke.com</email>
      <id>4</id>
      <name>Lindsay Funke</name>
      <userName>lindsay</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Tobias@funke.com</email>
      <id>5</id>
      <name>Tobias Funke</name>
      <userName>tobias</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>georgemichael@bluth.com</email>
      <id>6</id>
      <name>George Michael Bluth</name>
      <userName>georgemichael</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>maeby@funke.com</email>
      <id>7</id>
      <name>Maeby Funke</name>
      <userName>maeby</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Buster@bluth.com</email>
      <id>8</id>
      <name>Buster Bluth</name>
      <userName>buster</userName>
    </user>
  </items>
  <page>1</page>
  <pageSize>100</pageSize>
  <totalItems>8</totalItems>
  <totalPages>1</totalPages>
</users>

Update the membership list on a project

PUT https://agilezen.com/api/v1/projects/{projectid}/members

Updates the entire list of members for a project. The project owner cannot be removed from a project. Trying to do so will result in an error.

Requires Admin access on the project.
Supports: Enrichments

The request data should be an array using the reference syntax for users. All members of the project will be removed, and replaced with the specified list of users. If you exceed the limit of collaborators for your account, AgileZen will return a 402 HTTP response code.

On success, returns the list of members for the specified project.

{
  "page": 1,
  "pageSize": 100,
  "totalPages": 1,
  "totalItems": 8,
  "items": [
    {
      "id": 1,
      "name": "Gob Bluth",
      "userName": "gob",
      "email": "Gob@bluth.com"
    },
    {
      "id": 2,
      "name": "Michael Bluth",
      "userName": "Michael",
      "email": "Michael@bluth.com"
    },
    {
      "id": 3,
      "name": "Lucille Bluth",
      "userName": "lucille",
      "email": "Lucille@bluth.com"
    },
    {
      "id": 4,
      "name": "Lindsay Funke",
      "userName": "lindsay",
      "email": "Lindsay@funke.com"
    },
    {
      "id": 5,
      "name": "Tobias Funke",
      "userName": "tobias",
      "email": "Tobias@funke.com"
    },
    {
      "id": 6,
      "name": "George Michael Bluth",
      "userName": "georgemichael",
      "email": "georgemichael@bluth.com"
    },
    {
      "id": 7,
      "name": "Maeby Funke",
      "userName": "maeby",
      "email": "maeby@funke.com"
    },
    {
      "id": 8,
      "name": "Buster Bluth",
      "userName": "buster",
      "email": "Buster@bluth.com"
    }
  ]
}
<?xml version="1.0" encoding="utf-8"?>
<users>
  <items>
    <user>
      <bio />
      <createTime />
      <email>Gob@bluth.com</email>
      <id>1</id>
      <name>Gob Bluth</name>
      <userName>gob</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Michael@bluth.com</email>
      <id>2</id>
      <name>Michael Bluth</name>
      <userName>Michael</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Lucille@bluth.com</email>
      <id>3</id>
      <name>Lucille Bluth</name>
      <userName>lucille</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Lindsay@funke.com</email>
      <id>4</id>
      <name>Lindsay Funke</name>
      <userName>lindsay</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Tobias@funke.com</email>
      <id>5</id>
      <name>Tobias Funke</name>
      <userName>tobias</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>georgemichael@bluth.com</email>
      <id>6</id>
      <name>George Michael Bluth</name>
      <userName>georgemichael</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>maeby@funke.com</email>
      <id>7</id>
      <name>Maeby Funke</name>
      <userName>maeby</userName>
    </user>
    <user>
      <bio />
      <createTime />
      <email>Buster@bluth.com</email>
      <id>8</id>
      <name>Buster Bluth</name>
      <userName>buster</userName>
    </user>
  </items>
  <page>1</page>
  <pageSize>100</pageSize>
  <totalItems>8</totalItems>
  <totalPages>1</totalPages>
</users>

Delete a membership

DELETE https://agilezen.com/api/v1/projects/{projectid}/members/{userid}

Removes the specified user as a member of the project. The project owner cannot be removed from a project. Trying to do so will result in an error.

Requires Admin access on the project.

On success, returns an empty result with a 200 status code.

Filters

This resource supports the following filters.

PropertyTypeMatches
descriptionstringThe project’s description field
detailsstringThe project’s details field
idintegerThe project’s numeric identifier
namestringThe project’s name
ownermixedThe username, name, or id of the project’s owner

Enrichments

This resource supports the following enrichments.

Details

GET https://agilezen.com/api/v1/...?with=details

Returns the project or projects with the details field in Markdown format. The details field is not normally returned since it has no limit on size.

{
  "id": 1,
  "name": "Sudden Valley",
  "description": "I can see myself marinating a chicken in that.",
  "createTime": "2011-02-17T18:47:16",
  "owner": {
    "id": 1,
    "name": "Gob Bluth",
    "userName": "gob",
    "email": "Gob@bluth.com"
  }
}
<?xml version="1.0" encoding="utf-8"?>
<project>
  <createTime>2011-02-17T18:47:16</createTime>
  <description>I can see myself marinating a chicken in that.</description>
  <id>1</id>
  <name>Sudden Valley</name>
  <owner>
    <email>Gob@bluth.com</email>
    <id>1</id>
    <name>Gob Bluth</name>
    <userName>gob</userName>
  </owner>
</project>

Invites

GET https://agilezen.com/api/v1/...?with=invites

Returns the project or projects with the list of pending invitations that have not yet been accepted.

{
  "id": 1,
  "name": "Sudden Valley",
  "description": "I can see myself marinating a chicken in that.",
  "createTime": "2011-02-17T18:47:16",
  "owner": {
    "id": 1,
    "name": "Gob Bluth",
    "userName": "gob",
    "email": "Gob@bluth.com"
  },
  "invites": [
    {
      "id": 1,
      "createTime": "2011-02-25T16:53:09",
      "email": "georgesr@bluth.com",
      "token": "7072d4c39059432ea791a03407463f7c",
      "sender": {
        "id": 1,
        "name": "Gob Bluth",
        "userName": "gob",
        "email": "Gob@bluth.com"
      },
      "role": {
        "id": 3,
        "name": "Administrators"
      }
    }
  ]
}
<?xml version="1.0" encoding="utf-8"?>
<project>
  <createTime>2011-02-17T18:47:16</createTime>
  <description>I can see myself marinating a chicken in that.</description>
  <id>1</id>
  <invites>
    <invite>
      <createTime>2011-02-25T16:53:09</createTime>
      <email>georgesr@bluth.com</email>
      <id>1</id>
      <role>
        <id>3</id>
        <name>Administrators</name>
      </role>
      <sender>
        <email>Gob@bluth.com</email>
        <id>1</id>
        <name>Gob Bluth</name>
        <userName>gob</userName>
      </sender>
      <token>7072d4c39059432ea791a03407463f7c</token>
    </invite>
  </invites>
  <name>Sudden Valley</name>
  <owner>
    <email>Gob@bluth.com</email>
    <id>1</id>
    <name>Gob Bluth</name>
    <userName>gob</userName>
  </owner>
</project>

Members

GET https://agilezen.com/api/v1/...?with=members

Returns the project or projects with the list of members.

{
  "id": 1,
  "name": "Sudden Valley",
  "description": "I can see myself marinating a chicken in that.",
  "createTime": "2011-02-17T18:47:16",
  "owner": {
    "id": 1,
    "name": "Gob Bluth",
    "userName": "gob",
    "email": "Gob@bluth.com"
  },
  "members": [
    {
      "id": 1,
      "name": "Gob Bluth"
    },
    {
      "id": 2,
      "name": "Michael Bluth"
    },
    {
      "id": 3,
      "name": "Lucille Bluth"
    },
    {
      "id": 4,
      "name": "Lindsay Funke"
    },
    {
      "id": 5,
      "name": "Tobias Funke"
    },
    {
      "id": 6,
      "name": "George Michael Bluth"
    },
    {
      "id": 7,
      "name": "Maeby Funke"
    },
    {
      "id": 8,
      "name": "Buster Bluth"
    }
  ]
}
<?xml version="1.0" encoding="utf-8"?>
<project>
  <createTime>2011-02-17T18:47:16</createTime>
  <description>I can see myself marinating a chicken in that.</description>
  <id>1</id>
  <members>
    <user>
      <email />
      <id>1</id>
      <name>Gob Bluth</name>
      <userName />
    </user>
    <user>
      <email />
      <id>2</id>
      <name>Michael Bluth</name>
      <userName />
    </user>
    <user>
      <email />
      <id>3</id>
      <name>Lucille Bluth</name>
      <userName />
    </user>
    <user>
      <email />
      <id>4</id>
      <name>Lindsay Funke</name>
      <userName />
    </user>
    <user>
      <email />
      <id>5</id>
      <name>Tobias Funke</name>
      <userName />
    </user>
    <user>
      <email />
      <id>6</id>
      <name>George Michael Bluth</name>
      <userName />
    </user>
    <user>
      <email />
      <id>7</id>
      <name>Maeby Funke</name>
      <userName />
    </user>
    <user>
      <email />
      <id>8</id>
      <name>Buster Bluth</name>
      <userName />
    </user>
  </members>
  <name>Sudden Valley</name>
  <owner>
    <email>Gob@bluth.com</email>
    <id>1</id>
    <name>Gob Bluth</name>
    <userName>gob</userName>
  </owner>
</project>

Metrics

GET https://agilezen.com/api/v1/...?with=metrics

Returns the project or projects with summary performance metrics.

{
  "id": 1,
  "name": "Sudden Valley",
  "description": "I can see myself marinating a chicken in that.",
  "createTime": "2011-02-17T18:47:16",
  "owner": {
    "id": 1,
    "name": "Gob Bluth",
    "userName": "gob",
    "email": "Gob@bluth.com"
  },
  "metrics": {
    "throughput": 3,
    "leadTime": 0.01,
    "cycleTime": 0.01,
    "workTime": 0.01,
    "waitTime": 0.0,
    "blockedTime": 0.0,
    "efficiency": 99.99
  }
}
<?xml version="1.0" encoding="utf-8"?>
<project>
  <createTime>2011-02-17T18:47:16</createTime>
  <description>I can see myself marinating a chicken in that.</description>
  <id>1</id>
  <metrics>
    <blockedTime>0</blockedTime>
    <cycleTime>0.01</cycleTime>
    <efficiency>99.99</efficiency>
    <leadTime>0.01</leadTime>
    <throughput>3</throughput>
    <waitTime>0</waitTime>
    <workTime>0.01</workTime>
  </metrics>
  <name>Sudden Valley</name>
  <owner>
    <email>Gob@bluth.com</email>
    <id>1</id>
    <name>Gob Bluth</name>
    <userName>gob</userName>
  </owner>
</project>

Phases

GET https://agilezen.com/api/v1/...?with=phases

Returns the project or projects with the list of phases defining the workflow.

{
  "id": 1,
  "name": "Sudden Valley",
  "description": "I can see myself marinating a chicken in that.",
  "createTime": "2011-02-17T18:47:16",
  "owner": {
    "id": 1,
    "name": "Gob Bluth",
    "userName": "gob",
    "email": "Gob@bluth.com"
  },
  "phases": [
    {
      "id": 1,
      "name": "Backlog",
      "description": "Stories that will be worked on someday",
      "index": 0
    },
    {
      "id": 2,
      "name": "Ready",
      "description": "Stories that are ready to be worked on",
      "index": 1
    },
    {
      "id": 3,
      "name": "Working",
      "description": "Stories that are currently being worked on",
      "index": 2
    },
    {
      "id": 4,
      "name": "Complete",
      "description": "Stories that have been completed",
      "index": 3
    },
    {
      "id": 5,
      "name": "Archive",
      "description": "Stories that are history",
      "index": 4
    }
  ]
}
<?xml version="1.0" encoding="utf-8"?>
<project>
  <createTime>2011-02-17T18:47:16</createTime>
  <description>I can see myself marinating a chicken in that.</description>
  <id>1</id>
  <name>Sudden Valley</name>
  <owner>
    <email>Gob@bluth.com</email>
    <id>1</id>
    <name>Gob Bluth</name>
    <userName>gob</userName>
  </owner>
  <phases>
    <phase>
      <description>Stories that will be worked on someday</description>
      <id>1</id>
      <index>0</index>
      <limit />
      <name>Backlog</name>
    </phase>
    <phase>
      <description>Stories that are ready to be worked on</description>
      <id>2</id>
      <index>1</index>
      <limit />
      <name>Ready</name>
    </phase>
    <phase>
      <description>Stories that are currently being worked on</description>
      <id>3</id>
      <index>2</index>
      <limit />
      <name>Working</name>
    </phase>
    <phase>
      <description>Stories that have been completed</description>
      <id>4</id>
      <index>3</index>
      <limit />
      <name>Complete</name>
    </phase>
    <phase>
      <description>Stories that are history</description>
      <id>5</id>
      <index>4</index>
      <limit />
      <name>Archive</name>
    </phase>
  </phases>
</project>

Roles

GET https://agilezen.com/api/v1/...?with=roles

Returns the project or projects with the list of security roles that have been defined.

{
  "id": 1,
  "name": "Sudden Valley",
  "description": "I can see myself marinating a chicken in that.",
  "createTime": "2011-02-17T18:47:16",
  "owner": {
    "id": 1,
    "name": "Gob Bluth",
    "userName": "gob",
    "email": "Gob@bluth.com"
  },
  "roles": [
    {
      "id": 3,
      "name": "Administrators",
      "access": "read",
      "members": [
        {
          "id": 1,
          "name": "Gob Bluth",
          "userName": "gob",
          "email": "Gob@bluth.com"
        },
        {
          "id": 2,
          "name": "Michael Bluth",
          "userName": "Michael",
          "email": "Michael@bluth.com"
        },
        {
          "id": 3,
          "name": "Lucille Bluth",
          "userName": "lucille",
          "email": "Lucille@bluth.com"
        }
      ]
    },
    {
      "id": 4,
      "name": "Members",
      "access": "read",
      "members": [
        {
          "id": 4,
          "name": "Lindsay Funke",
          "userName": "lindsay",
          "email": "Lindsay@funke.com"
        },
        {
          "id": 5,
          "name": "Tobias Funke",
          "userName": "tobias",
          "email": "Tobias@funke.com"
        },
        {
          "id": 6,
          "name": "George Michael Bluth",
          "userName": "georgemichael",
          "email": "georgemichael@bluth.com"
        },
        {
          "id": 7,
          "name": "Maeby Funke",
          "userName": "maeby",
          "email": "maeby@funke.com"
        },
        {
          "id": 8,
          "name": "Buster Bluth",
          "userName": "buster",
          "email": "Buster@bluth.com"
        }
      ]
    }
  ]
}
<?xml version="1.0" encoding="utf-8"?>
<project>
  <createTime>2011-02-17T18:47:16</createTime>
  <description>I can see myself marinating a chicken in that.</description>
  <id>1</id>
  <name>Sudden Valley</name>
  <owner>
    <email>Gob@bluth.com</email>
    <id>1</id>
    <name>Gob Bluth</name>
    <userName>gob</userName>
  </owner>
  <roles>
    <role>
      <access>read</access>
      <id>3</id>
      <members>
        <user>
          <email>Gob@bluth.com</email>
          <id>1</id>
          <name>Gob Bluth</name>
          <userName>gob</userName>
        </user>
        <user>
          <email>Michael@bluth.com</email>
          <id>2</id>
          <name>Michael Bluth</name>
          <userName>Michael</userName>
        </user>
        <user>
          <email>Lucille@bluth.com</email>
          <id>3</id>
          <name>Lucille Bluth</name>
          <userName>lucille</userName>
        </user>
      </members>
      <name>Administrators</name>
    </role>
    <role>
      <access>read</access>
      <id>4</id>
      <members>
        <user>
          <email>Lindsay@funke.com</email>
          <id>4</id>
          <name>Lindsay Funke</name>
          <userName>lindsay</userName>
        </user>
        <user>
          <email>Tobias@funke.com</email>
          <id>5</id>
          <name>Tobias Funke</name>
          <userName>tobias</userName>
        </user>
        <user>
          <email>georgemichael@bluth.com</email>
          <id>6</id>
          <name>George Michael Bluth</name>
          <userName>georgemichael</userName>
        </user>
        <user>
          <email>maeby@funke.com</email>
          <id>7</id>
          <name>Maeby Funke</name>
          <userName>maeby</userName>
        </user>
        <user>
          <email>Buster@bluth.com</email>
          <id>8</id>
          <name>Buster Bluth</name>
          <userName>buster</userName>
        </user>
      </members>
      <name>Members</name>
    </role>
  </roles>
</project>