Project Managers can view, create, update and delete projects. Other users can only view their assigned projects (see Project Assignments).
Projects associated with time entries can not be deleted. Consider making them inactive instead.
Show
Request
GET /projects/#{project-id}.xml
Optional parameters
Specify include=clients or include=tasks to include related clients and/or tasks. For example:
GET /projects/#{project-id}.xml?include=clients,tasks
Response
Status: 200 OK <project> <id type="integer">29</id> <name>Wedding Album</name> <active type="boolean">true</active> <effectively-active type="boolean">true</effectively-active> <code/> <description>Remove ex husband from all images.</description> <url/> <created-at type="datetime">2007-03-30T20:33:57Z</created-at> <updated-at type="datetime">2007-12-20T06:55:23Z</updated-at> <!-- if include=clients --> <client> ... </client> <!-- if include=tasks --> <tasks total="3" end="3" start="1"> <task> ... </task> ... </tasks> </project>
List
Request
All projects:
GET /projects.xml
All active projects:
GET /projects/active.xml
All inactive projects:
GET /projects/inactive.xml
Projects assigned to the current user:
GET /projects/my_assignments.xml
Active projects assigned to the current user:
GET /projects/my_active_assignments.xml
Inactive projects assigned to the current user:
GET /projects/my_inactive_assignments.xml
Projects associated with a specific client:
GET /clients/#{client-id}/projects.xml
Active projects associated with a specific client:
GET /clients/#{client-id}/projects/active.xml
Inactive projects associated with a specific client:
GET /clients/#{client-id}/projects/inactive.xml
Optional parameters
Specify start and end to request a specific range of items. For example:
GET /projects.xml?start=1&end=4
Specify include=clients or include=tasks to include related clients or tasks with each project. For example:
GET /projects.xml?include=clients,tasks
Response
Status: 200 OK <projects total="6" end="6" start="1"> <project> ... </project> ... </projects>
Create
Request
POST /projects.xml
Include the following data with your request:
<project> <!-- name (REQUIRED) --> <name>Wedding Album</name> <!-- client id (REQUIRED if account.display-clients = true) --> <client-id>#{client-id}</client-id> <!-- active (optional boolean, default = true) --> <active>true</active> <!-- code (optional identifier) --> <code>12345</code> <!-- description (optional) --> <description>Remove ex husband from all images.</description> <!-- url (optional external link) --> <url>http://junejonesweddingalbum2008.com</url> </project>
Response
Status: 201 Created <project> <id type="integer">#{new-project-id}</id> <name>Wedding Album</name> <active type="boolean">true</active> <effectively-active type="boolean">true</effectively-active> <code>12345</code> <description>Remove ex husband from all images.</description> <url>http://junejonesweddingalbum2008.com</url> <client-id type="integer">22</client-id> <created-at type="datetime">2008-01-07T19:35:17Z</created-at> <updated-at type="datetime">2008-01-07T19:35:17Z</updated-at> </project>
Update
Request
PUT /projects/#{project-id}.xml
Include ANY of the following data with your request:
<project> <name>Wedding Album</name> <client-id>#{client-id}</client-id> <active>true</active> <code>ABC123</code> <description>Remove ex husband from all images.</description> <url>http://junejonesweddingalbum2008.com</url> </project>
Response
Status: 200 OK
Delete
Request
DELETE /projects/#{project-id}.xml
Response
Status: 200 OK


