Tickets and Milestones
Each project can contain any number of tickets. A ticket also belongs to a number of "property objects" - statuses, priorities or categories
- the available objects are listed below and are referenced to the ticket using the foreign ID. For example, the ticket status is linked using the
status-id field, the priority uses the priority-id field, and so on. Each project maintains it's own set of property objects
and you should ensure you use the appropriate foreign IDs for the project you are working with. The
Statuses, Priorities & Categories documentation will give you information about how to obtain a list of all
available properties for a specific project.
API URLs
| Data | Method | URL |
| All tickets | GET | /project/tickets |
| All tickets (with search query) | GET | /project/tickets?query=query |
| Creating a new ticket | POST | /project/tickets |
Object Properties
The XML output below shows the properties which are returned by default when accessing ticket details.
GET /project/tickets
<ticket>
<ticket-id type="integer">2</ticket-id>
<summary>Another Test Ticket</summary>
<ticket-type>bug</ticket-type>
<reporter-id type="integer">321</reporter-id>
<assignee-id type="integer">321</assignee-id>
<assignee>adam</assignee>
<reporter>adam</reporter>
<category-id type="integer">3351</category-id>
<priority-id type="integer">3297</priority-id>
<status-id type="integer">6675</status-id>
<milestone-id type="integer" nil="true"/>
<upload-tokens type="array">
<upload-token>c2959f1c-0297-0af7-4e52-ed0bc3e2fb02</upload-token>
</upload-tokens>
</ticket>
ticket-idcontains the unique ID for the ticket. Each project's ticket numbering starts at 1 and increments by one each time.summaryrequired the current ticket summaryticket-typerequired the ticket type - any of 'bug', 'enhancement' or 'task'.reporter-idthe ID of the user who reported this ticketassignee-idthe ID of the user who is currently assigned this ticketassigneethe username of the assignee. See below.reporterthe username of the reporter. See below.category-idthe ID of the ticket's category.priority-idrequired the ID of the ticket's priority.status-idrequired the ID of the ticket's status.milestone-idthe ID of the ticket's milestone or nil if no milestone is assigned.upload_tokensallows already uploaded files to be attached to a ticket. Should be an array of tokens returned from Uploading Files.tagscan be used to add one or more tags to the ticket. Separate multiple tags using a space.
See Statuses, Priorities & Categories for information about IDs to use with status-id, category-id or priority-id and the
milestone documentation for information about the content for milestone-id.
Passing the reporter information
When submitting a ticket you can link a ticket to a user which already exists by passing the reporter-id value, to link the ticket to a user not within your account you should send reporter_name and reporter_email.
assignee and reporter are for information only. You cannot use these when creating or updating records. To update the assignee
and reporter you should send the new assignee-id and reporter-id values, respectively.
Creating a ticket
You can also create a ticket using the parameters above. You can also set the initial content for a ticket by setting a description tag. Please note that if you're using any non-XML safe characters you should wrap your data in CDATA tags like so:
POST /project/tickets
<ticket>
<summary>My new ticket</summary>
<description><![CDATA[This happened & then that happened]]></description>
</ticket>