Projects

Get a list of projects → GET /projects.xml

Retrieve a list of projects for the current account

Response:

  <projects>
    <project>
    ...
    </project>
  <project>
    ...
  </project>
</projects>

Get a projects → GET /projects/#{project_id}.xml

Get information on a single projects

Response:

<project>
  <archived type="boolean">false</archived>
  <created-at type="datetime">2008-09-25T20:04:13+01:00</created-at>
  <default-assigned-user-id type="integer" nil="true"/>
  <default-milestone-id type="integer" nil="true"/>
  <description nil="true"/>
  <description-html/>
  <id type="integer">17456</id>
  <license>mit</license>
  <name>oss with license</name>
  <open-tickets-count type="integer">0</open-tickets-count>
  <permalink>oss-with-license</permalink>
  <public type="boolean">true</public>
  <updated-at type="datetime">2008-09-25T20:04:14+01:00</updated-at>
  <open-states>
    new/f17  # You can add comments here
    open/aaa # if you want to.
  </open-states>
  <closed-states>
    resolved/6A0 # You can customize colors
    hold/EB0     # with 3 or 6 character hex codes
    invalid/A30  # &#x27;A30&#x27; expands to &#x27;AA3300&#x27;
  </closed-states>
  <open-states-list>new,open</open-states-list>
  <closed-states-list>resolved,hold,invalid</closed-states-list>
</project>

Get initial state for a new project → GET /projects/new.xml

Retrieve the initial state for a project.

Response:

<project>
  <archived type="boolean"></archived>
  <created-at type="datetime"></created-at>
  <name></name>
  <open-tickets-count type="integer">0</open-tickets-count>
  <permalink></permalink>
  <public type="boolean">false</public>
  <default-assigned-user-id type="integer"></default-assigned-user-id>
  <default-milestone-id type="integer"></default-milestone-id>
</project>

Create a new project → POST /projects.xml

Creates a project. Note that even though the above XML shows more attributes, only the name, archived, and public attributes are allowed for creating or updating projects. Missing attributes will remain their default, as shown in the new project request above.

Request:

<project>
  <archived type="boolean">false</archived>
  <name>MyProj</name>
  <public type="boolean">false</public>
</project>

Or, if you're using JSON:

  {"project": {"name": "MyProj", "archived": false, "public": false}}

Response

HTTP Status: 201 Created
Location: http://ACCOUNT.lighthouseapp.com/projects/5.xml

<project>
  <archived type="boolean">false</archived>
  <created-at type="datetime">2006-07-23T21:13:24Z</created-at>
  <name>MyProj</name>
  <open-tickets-count type="integer">0</open-tickets-count>
  <permalink>myproj</permalink>
  <public type="boolean">false</public>
</project>

Update a project - PUT /projects/#{project_id}.xml

Update an existing project. You can leave out fields to keep them unchanged.

Request:

<project>
  <archived type="boolean">false</archived>
  <name>Lighthouse Reloaded</name>
  <public type="boolean">false</public>
</project>

Response:

HTTP Status: 200 OK

Delete a project - DELETE /projects/#{project_id}.xml

This action should not be taken lightly. This will not only delete the project, but all the tickets and messages in it

Response:

HTTP Status: 200 OK