Introduction
We offer a RESTful API that allows you to work with DoneDone data for your own applications. All methods from the API use either the GET, POST, PUT, or DELETE verbs and return standard JSON-serialized objects. We’ve provided sample responses for each method described below.
Your access to data through the API is identical to your access to data within the DoneDone application. For example, if you are an administrator, you can view your account’s companies and people. Otherwise, you’ll receive a 403 Forbidden
HTTP status code and message. Similarly, you have the exact same access to projects and issues over the API as you do within the DoneDone application.
Important note: Our deprecated API documentation is still available.
Methods
All URLs for the requests outlined below begin with: https://{subdomain}.mydonedone.com/issuetracker/api/v2
. You must use the HTTP verbs specified before each relative URL as well.
Important note: All projects and issues you have access to are available via this API. By comparison, our deprecated API allows you to enable and disable acccess on a per-project basis.
Authentication
We support HTTP Basic authentication to access the API. All requests go over SSL, so your credentials are safe.
When making any calls to the API, provide your username and API token (or password) via the HTTP Basic authentication header, in the form: Authorization: Basic {XXXXXX}
where {XXXXXX}
is your Base64-encoded username:apitoken
or username:password
. The API token is available on your DoneDone View Profile page under the API Token section.
Rate limiting
You can make up to 500 requests to the API per account per 30 minutes. If you exceed the rate limit, all API responses will return a 409 Conflict
HTTP status code and message. When you receive this response, check the Retry-After
header to see how many seconds you have to wait until you are permitted to make requests again.
Responses
All responses will contain JSON-encoded data, with the response content type set to application/json
.
Success Responses
200 OK – The requested data or a success message with relevant details on POST and PUT requests will be provided as JSON encoded data described above.
Error Responses
Any request may respond with the following errors, each of which also provides some additional details (if any) as a JSON object with a message
attribute.
400 Bad Request – You are missing a required parameter or sending an invalid value for a parameter (an integer where a date was expected, for example). Check what you’re sending to the API compared to what’s expected in this documentation.
401 Unauthorized – You did not authenticate properly and need to provide correct credentials via the basic authentication header.
402 Payment Required – Your account is currently suspended due to either the end of your trial or an overdue invoice.
403 Forbidden – You’re authenticated, but you are not authorized to perform the request.
404 Not Found – The requested resource couldn’t be found. Check that the URL you are calling is correct.
409 Conflict – You’ve made too many requests to the same resource. You can make up to 500 API requests per account per 30 minutes. When you receive this response, check the Retry-After
header for how many seconds you have to wait until you are permitted to make requests again.
410 Gone – The issue you are requesting was deleted by a user.
500 Internal Error – Something unexpected occurred. Contact our support for help!
API Wrappers
We currently have an API wrapper for C# available on Github. If you would like to contribute to creating a wrapper for another language, please let us know!
Companies & People
Use the methods below to access companies and people.
Get all companies
GET /companies.json
will return a list of company id
s and names in the account. The authenticated user must be an administrator or owner of the account. Use the query parameter load_with_people=true
to also append the details of each employee from Get Company Details.
Sample response:
[
{
"id": 123,
"name": "Acme Corporation"
},
{
"id": 456,
"name": "We Are Mammoth, Inc."
}
]
Get company details
GET /companies/123.json
will return the company with id = 123
, along with all of its people. Included on the company object are the number of active users (e.g. admins or people on projects), which is limited based on your account’s current pricing tier. The authenticated user must be an administrator or owner of the account.
Sample response:
{
"id": 123,
"name": "Acme Corporation",
"number_of_active_users": 2,
"people": [
{
"id": 88,
"first_name": "John",
"last_name": "Doe",
"account_email": "john.doe@acme.com",
"mobile_phone": "555-1234",
"office_phone": "555-1235",
"fax": "555-1236",
"avatar_url": "https://www.someimage.com/some-image.png"
},
{
"id": 89,
"first_name": "Jane",
"last_name": "Smith",
"account_email": "jane.smith@acme.com",
"mobile_phone": "",
"office_phone": "",
"fax": "",
"avatar_url": ""
}
]
}
Get person
GET /people/88.json
will return the person with id = 88
. The authenticated user must be an administrator or owner of the account.
Sample response:
{
"id": 88,
"first_name": "John",
"last_name": "Doe",
"profile_email": "john.doe@homeaddress.com",
"account_email": "john.doe@acme.com",
"mobile_phone": "555-1234",
"office_phone": "555-1235",
"fax": "555-1236",
"avatar_url": "https://www.someimage.com/some-image.png",
"company_id": 123,
"company_name": "Acme Corporation"
}
Get authenticated user
GET /people/me.json
will return the authenticated user data.
Sample response: See Get person.
Create company
POST /companies.json
will create a company with the parameters below. The authenticated user must be an administrator or owner of the account.
Request parameters:
company_name
: Required string. The name of the company.
Sample Response:
{
"id": 123,
"name": "Acme Corporation"
}
Update company name
PUT /companies/123.json
will update the company with id = 123
with the parameters below. The authenticated user must be an administrator or owner of the account.
Request parameters:
company_name
: Required string. The name of the company.
Sample response:
{
"id": 123,
"name": "Acme Corporation"
}
Projects
Use the methods below to create, access and modify projects.
Get all projects
GET /projects.json
will return a list of project id
s and names that the authenticated user has access to in the account.
Sample response:
[
{
"id": 74,
"title": "Acme Corporation Website Redesign"
},
{
"id": 213,
"title": "Widgets Mobile Application"
}
]
Get project
GET /projects/74.json
will return the project with id = 74
. The project contains a list of all users
with access to the project, along with the subset of those users who are admins
for the project. The authenticated user must have access to the project.
Sample response:
[
{
"id": 74,
"title": "Acme Corporation Website Redesign",
"total_issues_in_project": 100,
"release_builds_enabled": true,
"tags": [
{
"id": 13,
"name": "database",
"number_of_issues": 3
},
{
"id": 32,
"name": "javascript",
"number_of_issues": 8
}
],
"users": [
{
"id": 88,
"name": "John Doe"
},
{
"id": 89,
"name": "Jane Smith"
}
],
"admins": [
{
"id": 89,
"name": "Jane Smith"
}
]
}
]
Get people in project
GET /projects/74/people.json
will return all people with access to the project with id = 74
. The access_level
determines the role a user plays in a project (either “normal” or “admin”). The authenticated user must have access to the project.
Sample response:
[
{
"id": 88,
"name": "John Doe",
"account_email": "john.doe@acme.com",
"access_level": "normal"
},
{
"id": 89,
"name": "Jane Smith",
"account_email": "jane.smith@acme.com",
"access_level": "admin"
}
]
Create project
POST /projects.json
will create a project with the parameters below. The authenticated user must be an administrator or owner of the account.
Request parameters:
title
: Required string. The title of the project.
user_ids
: Optional comma-delimited string of user id
s of people who should have access to the project. See Get All Companies and Get Company Details for allowable values. Note: the owner of the account and all administrators will always have access to all projects.
user_ids_as_admin
: Optional comma-delimited string of user id
s of people who should have administrative access to the project. The id
s in this string must also be included in the user_ids
string, or else they will be skipped. See Get All Companies and Get Company Details for allowable values. Note: the owner of the account and all administrators will always have administrative access to all projects.
Sample Response: Returns the created project detail. See Get Project.
Update project
PUT /projects/74.json
will update the project where id = 74
with the parameters below. The authenticated user must be an administrator or owner of the account.
Request parameters:
title
: Optional string. The title of the project.
user_ids
: Optional comma-delimited string of user id
s of people who should have access to the project. See Get All Companies and Get Company Details for allowable values. Explicitly pass a null
or empty string value to remove all existing users. Note: the owner of the account and all administrators will always have access to all projects.
user_ids_as_admin
: Optional comma-delimited string of user id
s of people who should have administrative access to the project. The id
s in this string must also be included in the user_ids
string, or else they will be skipped. See Get All Companies and Get Company Details for allowable values. Note: the owner of the account and all administrators will always have administrative access to all projects.
Sample Response: Returns the updated project detail. See Get Project.
Archive/Delete Project
DELETE /projects/74.json
will archive or delete the project where id = 74
with the parameters below. The authenticated user must be an administrator or owner of the account.
Request parameters:
archive
: Optional boolean indicating whether the project should be archived. Defaults to true
. When value is false
, the project will be irreversibly deleted.
Sample Response:
{
"success": true
}
Issues
Use the methods below to create, access and modify issues.
Create issue
POST /projects/74/issues.json
will create an issue in project where id = 74
with the parameters below.
Request parameters:
title
: Required string. The title for the issue.
description
: Optional Markdown-based string.
attachments
: Optional file upload(s) in multipart MIME format.
due_date
: Optional date. Most standard formats accepted.
tags
: Optional comma-delimited string of tags for the issue, such as tag1,tag2,tag3
.
priority_level_id
: Required. The id
of the priority level. Use Priority Levels for allowable values.
fixer_id
: Required. The id
of the user to assign as Fixer. Use Available Reassignees for allowable values.
tester_id
: Required. The id
of the user to assign as Tester. Use Available Reassignees for allowable ids.
user_ids_to_cc
: Optional comma-delimited string of user id
s to add to the CC notification list. Use Available Reassignees for allowable values.
suppress_notifications
: Optional boolean indicating whether user notifications should be suppressed for this action. Defaults to false
.
Sample Response: Returns the created issue detail. See Get Issue.
Get issue
GET /projects/74/issues/8.json
will return the issue where order_number = 8
in project where id = 74
. It will also return a list of allowable actions (such as whether the user can reassign fixer, tester, priority, etc.)
Sample response:
{
"title": "Page does not work in Netscape Navigator 3.1.1",
"order_number": 8,
"description": "The whole page looks wonky!",
"description_markdown": "The whole page looks wonky!",
"due_date": "/Date(1352858090320)/",
"created_on": "/Date(1352351481160)/",
"priority": {
"id": 2,
"name": "Medium"
},
"project": {
"id": 74,
"name": "Acme Corporate Website Redesign"
},
"status": {
"id": 22,
"name": "Fixed"
},
"tester": {
"id": 88,
"name": "John Doe",
"avatar_url": "https://www.someimage.com/some-image.png"
},
"fixer": {
"id": 89,
"name": "Jane Smith",
"avatar_url": "https://www.someimage.com/some-image.png"
},
"creator": {
"id": 88,
"name": "John Doe",
"avatar_url": "https://www.someimage.com/some-image.png"
},
"ccd_users": [
{
"id": 90,
"name": "Bill Jones"
},
{
"id": 91,
"name": "Sally Johnson"
}
],
"tags": [
{
"id": 12234,
"name": "netscape"
}
],
"attachments": [
{
"id": 15222,
"path": "https://myattachments.com/some-image.gif"
},
{
"id": 15223,
"path": "https://myattachments.com/some-image.png"
}
],
"histories": [
{
"id": 1690495,
"created_on": "/Date(1352351481160)/",
"action": "John Doe created the issue.",
"description": "Assigned to *Jane Smith* as the fixer, and to *John Doe* as the tester. This issue is marked as *Medium*.",
"attachments": [
{
"id": 16855,
"path": "https://myattachments.com/some-image.gif"
}
],
"creator": {
"id": 88,
"name": "John Doe",
"avatar_url": "https://www.someimage.com/some-image.png"
}
},
{
"id": 1693089,
"created_on": "/Date(1352415830993)/",
"action": "Jane Smith changed the status to Ready for Next Release.",
"description": "Thanks John, Sorry about that! I've removed all semblance of modern web design to support this browser.Thanks!",
"attachments": [],
"creator": {
"id": 89,
"name": "Bill Jones",
"avatar_url": "https://www.someimage.com/some-image.png"
}
}
],
"is_public_issue": false,
"public_issue_reply_to_address":"",
"public_issue_cc_addresses":"",
"duplicate_of_issue_info":{
"project_id":74,
"order_number":7
},
"allowable_actions":{
"reassign_tester":true,
"reassign_fixer":true,
"add_comment":true,
"update_status":true,
"update_priority":true,
"edit_issue":true,
"confirm_fixed":false,
"confirm_is_issue":false,
"confirm_is_reproducible":false,
"provide_missing_information":false
}
}
Update issue
PUT /projects/74/issues/8.json
will update the issue where order_number = 8
in project where id = 74
with the parameters below.
Request parameters:
title
: Optional string. The title for the issue.
description
: Optional Markdown-based string.
priority_level_id
: Optional integer. The id
of the priority level. Use Priority Levels for allowable values.
state_id
: Optional integer. The id
of the issue status. Use Available Statuses for allowable values.
fixer_id
: Optional integer. The id
of the user to assign as Fixer. Use Available Reassignees for allowable values.
tester_id
: Optional integer. The id
of the user to assign as Tester. Use Available Reassignees for allowable values.
due_date
: Optional date. Most standard formats accepted. Explicitly pass a null
or empty string value to remove an existing due date.
tags
: Optional comma-delimited string of tags for the issue, such as tag1,tag2,tag3
. Explicitly pass a null
or empty string value to remove all existing tags.
comment
: Optional Markdown-based string.
duplicate_of_issue_order_number
: Optional order number of the issue that this issue duplicates. The issue must be in the same project as the duplicated issue. Explicitly pass a “0” to remove an existing “duplicate of issue order number”. Use Duplicate Issue Candidates for possible duplicate issue candidates.
attachments
: Optional file upload(s) in multipart MIME format.
user_ids_to_cc
: Optional comma-delimited string of user id
s to add to the CC notification list. Use Available Reassignees for allowable values.
new_project_id
: Optional integer. The id
of the project to which the issue should be moved. Use All Projects for allowable values.
removed_attachment_ids
: Optional comma-delimited string of attachment id
s to remove from the issue. Use Get issue for attachment ids.
suppress_notifications
: Optional boolean indicating whether user notifications should be suppressed for this action. Defaults to false
.
Sample Response: Returns the updated issue detail. See Get Issue.
Update issue status
PUT /projects/74/issues/8/status.json
will update the status of the issue where order_number = 8
in project where id = 74
with the parameters below:
Request parameters:
new_status_id
: Required. The id
of the issue status. Use Available Statuses for allowable values.
duplicate_of_issue_order_number
: Optional. The order number
of the issue in the project that this issue duplicates. Use Duplicate Issue Candidates for possible duplicate issue candidates.
comment
: Optional Markdown-based string.
attachments
: Optional file upload(s) in multipart MIME format.
Sample Response: Returns the updated issue detail. See Get Issue.
Update issue fixer
PUT /projects/74/issues/8/fixer.json
will update the fixer of the issue where order_number = 8
in project where id = 74
with the parameters below:
Request parameters:
new_fixer_id
: Required. The id of the new fixer. Use Available Reassignees for allowable ids.
comment
: Optional Markdown-based string.
attachments
: Optional file upload(s) in multipart MIME format.
Sample Response: Returns the updated issue detail. See Get Issue.
Update issue tester
PUT /projects/74/issues/8/tester.json
will update the tester of the issue where order_number = 8
in project where id = 74
with the parameters below:
Request parameters:
new_tester_id
: Required. The id of the new tester. Use Available Reassignees for allowable ids.
comment
: Optional Markdown-based string.
attachments
: Optional file upload(s) in multipart MIME format.
Sample Response: Returns the updated issue detail. See Get Issue.
Update issue priority level
PUT /projects/74/issues/8/priority_level.json
will update the priority level of the issue where order_number = 8
in project where id = 74
with the parameters below:
Request parameters:
new_priority_level_id
: Required. The id
of the new priority level. Use Priority Levels for allowable values.
comment
: Optional Markdown-based string.
attachments
: Optional file upload(s) in multipart MIME format.
Sample Response: Returns the updated issue detail. See Get Issue.
Get available reassignees
GET /projects/74/issues/8/people/available_for_reassignment.json
will return a list of people who can be cc’d or assigned as the fixer or tester to the issue where order_number = 8
in project where id = 74
.
Sample response:
[
{
"id": 88,
"name": "John Doe"
},
{
"id": 89,
"name": "Jane Smith"
}
]
Get available statuses
GET /projects/74/issues/8/statuses/available_to_change_to.json
will return a list of issue statuses the authenticated user may update the issue to where order_number = 8
in project where id = 74
.
Sample response:
[
{
"id": 12,
"name": "Open"
},
{
"id": 13,
"name": "In Progress"
},
{
"id": 14,
"name": "Not an Issue"
}
]
Get duplicate issue candidates
GET /projects/74/issues/8/duplicate_issue_candidates.json
will return a list of issues that this issue can be assigned as a duplicate of where order_number = 8
in project where id = 74
. This essentially returns all issue titles and order numbers in the project (excluding the issue passed in the URL).
You can assign the issue as a duplicate issue by updating its status to “Duplicate Issue” either in Update issue status or in Update issue and by assigning the duplicate_of_issue_order_number
parameter an order_number
from the list of returned duplicate issue candidates.
Sample response:
[
{
"order_number": 165,
"title": "My login is not working."
},
{
"order_number": 177,
"title": "Page not scrubbing HTML characters properly."
},
{
"order_number": 178,
"title": "The footer links are broken."
}
]
Issue Lists
Use the following methods to retrieve filtered lists of issues.
Issues waiting on you
GET /issues/waiting_on_you.json
will return all issues that are awaiting action by the authenticated user.
GET /projects/74/issues/waiting_on_you.json
will return all issues that are awaiting action by the authenticated user for project where id = 74
Request parameters: See Issue List Request Parameters
Sample response: See Issue List Sample Response
Issues you're waiting on
GET /issues/youre_waiting_on.json
will return all the authenticated user’s issues that are awaiting action by anyone other than the authenticated user.
GET /projects/74/issues/youre_waiting_on.json
will return all the authenticated user’s issues that are awaiting action by anyone other than the authenticated user for the project where id = 74
Request parameters: See Issue List Request Parameters
Sample response: See Issue List Sample Response
Issues you're CC'd on
GET /issues/youre_ccd_on.json
will return all issues that include the authenticated user in the CC notification list.
GET /projects/74/issues/youre_ccd_on.json
will return all issues that include the authenticated user in the CC notification list for the project where id = 74
Request parameters: See Issue List Request Parameters
Sample response: See Issue List Sample Response
Your active issues
GET /issues/your_active.json
will return all issues where the authenticated user is assigned as Fixer or Tester and the status is anything other than Closed, Fixed, Duplicate Issue, or On Hold.
GET /projects/74/issues/your_active.json
will return all issues for the project where id = 74
where the authenticated user is assigned as Fixer or Tester and the status is anything other than Closed, Fixed, Duplicate Issue, or On Hold.
Request parameters: See Issue List Request Parameters
Sample response: See Issue List Sample Response
All your issues
GET /issues/all_yours.json
will return all issues where the authenticated user is CC’d on, or assigned as Fixer or Tester.
GET /projects/74/issues/all_yours.json
will return all issues for the project where id = 74
where the authenticated user is CC’d on, or assigned as Fixer or Tester.
Request parameters: See Issue List Request Parameters
Sample response: See Issue List Sample Response
All active issues
GET /issues/all_active.json
will return all issues where the status is anything other than Closed, Fixed, Duplicate Issue, or On Hold.
GET /projects/74/issues/all_active.json
will return all issues for the project where id = 74
where the status is anything other than Closed, Fixed, Duplicate Issue, or On Hold.
Request parameters: See Issue List Request Parameters
Sample response: See Issue List Sample Response
All inactive issues
GET /issues/all_inactive.json
will return all issues where the status is Closed, Fixed, or Duplicate Issue.
GET /projects/74/issues/all_inactive.json
will return all issues for the project where id = 74
where the status is Closed, Fixed, or Duplicate Issue.
Request parameters: See Issue List Request Parameters
Sample response: See Issue List Sample Response
All issues on hold
GET /issues/all_on_hold.json
will return all issues where the status is On Hold.
GET /projects/74/issues/all_on_hold.json
will return all issues for the project where id = 74
where the status is On Hold.
Request parameters: See Issue List Request Parameters
Sample response: See Issue List Sample Response
All issues
GET /issues/all.json
will return all issues on projects the authenticated user has access to.
GET /projects/74/issues/all.json
will return all issues for the project where id = 74
.
Request parameters: See Issue List Request Parameters
Sample response: See Issue List Sample Response
Issues by custom filter
GET /issues/by_global_custom_filter/13.json
will return all issues where custom_filter_id = 13
. The authenticated user must have access to the filter – use Get global filters for allowable id
s.
GET /projects/74/issues/by_custom_filter/13.json
will return all issues for the project where id = 74
and custom_filter_id = 13
. The authenticated user must have access to the filter – use Get project filters for allowable id
s.
Request parameters: see Issue List Request Parameters
Sample response: see Issue List Sample Response
Request parameters
All Issue List methods accept the following request parameters:
tag_ids
: Optional comma-delimited list of tag id
s. Only issues matching at least one of the tag id
s will be returned. You can retrieve tag id
s on a per-project basis by using Get Project.
tag_ids_not_matching
: Optional comma-delimited list of tag id
s. Only issues not matching at least one of the tag id
s will be returned. You can retrieve tag id
s on a per-project basis by using Get Project.
start_due_date
: Optional date. Only issues with a due date after the start due date will be returned.
end_due_date
: Optional date. Only issues with a due date before the end due date will be returned.
sort
: Optional id
of the direction the issues should be sorted. See Sort Types for allowable values. Default is 5
(Last updated date, newest first).
issue_creation_type
: Optional id
of the creation type of the issues. Use Creation Types for allowable values. Default is 0
(All types).
skip
: Optional number of issues to skip in the result set. Default is 0
.
take
: Optional number of issues to return in the result set. Default is 50
; maximum is 500
.
Sample response
All Issue List methods return the same JSON response:
{
"total_issues": 2,
"issues": [
{
"title": "Page does not work in Netscape Navigator 3.1.1",
"order_number": 8,
"project": {
"id": 74,
"name": "Acme Corporate Website Redesign"
},
"created_on": "/Date(1352351481160)/",
"last_updated_on": "/Date(1352351481160)/",
"last_updater": {
"id": 88,
"name": "John Doe"
}
"last_viewed_on": "/Date(1352351481160)/",
"tester": {
"id": 88,
"name": "John Doe"
},
"fixer": {
"id": 89,
"name": "Jane Smith"
},
"creator": {
"id": 90,
"name": "Bob Jones"
},
"priority": {
"id": 2,
"name": "Medium"
},
"status": {
"id": 22,
"name": "Fixed"
},
"due_date": "/Date(1352351481160)/",
"is_public_issue": false
},
{
"title": "Error on login screen",
"order_number": 15,
"project": {
"id": 74,
"name": "Acme Corporate Website Redesign"
},
"created_on": "/Date(1352351481160)/",
"last_updated_on": "/Date(1352351481160)/",
"last_updater": {
"id": 89,
"name": "Jane Smith"
}
"last_viewed_on": "/Date(1352351481160)/",
"tester": {
"id": 89,
"name": "Jane Smith"
},
"fixer": {
"id": 88,
"name": "John Doe"
},
"creator": {
"id": 90,
"name": "Bob Jones"
},
"priority": {
"id": 4,
"name": "Critical"
},
"status": {
"id": 22,
"name": "Fixed"
},
"due_date": "/Date(1352351481160)/",
"is_public_issue": false,
"tags":[
{
"id":13,
"name":"database"
},
{
"id":32,
"name":"javascript"
}
]
}
]
}
Activity
Use the following methods to retrieve filtered lists of issue activity.
Issues waiting on you
GET /activity/issues_waiting_on_you.json
will return all activity for issues that are awaiting action by the authenticated user.
GET /projects/74/activity/issues_waiting_on_you.json
will return all activity for issues that are awaiting action by the authenticated user for the project where id = 74
Request parameters: see Activity Request Parameters
Sample response: see Activity Sample Response
Issues you're waiting on
GET /activity/issues_youre_waiting_on.json
will return all activity for the authenticated user’s issues that are awaiting action by anyone other than the authenticated user.
GET /projects/74/activity/issues_youre_waiting_on.json
will return all activity for the authenticated user’s issues that are awaiting action by anyone other than the authenticated user for the project where id = 74
Request parameters: see Activity Request Parameters
Sample response: see Activity Sample Response
Issues you're CC'd on
GET /activity/issues_youre_ccd_on.json
will return all activity for issues that include the authenticated user in the CC notification list.
GET /projects/74/activity/issues_youre_ccd_on.json
will return all activity for issues that include the authenticated user in the CC notification list for the project where id = 74
Request parameters: see Activity Request Parameters
Sample response: see Activity Sample Response
Your active issues
GET /activity/your_active_issues.json
will return all activity for issues where the authenticated user is assigned as Fixer or Tester and the status is anything other than Closed, Fixed, Duplicate Issue, or On Hold.
GET /projects/74/activity/your_active_issues.json
will return all activity for issues for the project where id = 74
where the authenticated user is assigned as Fixer or Tester and the status is anything other than Closed, Fixed, Duplicate Issue, or On Hold.
Request parameters: see Activity Request Parameters
Sample response: see Activity Sample Response
All your issues
GET /activity/all_your_issues.json
will return all activity for issues where the authenticated user is CC’d on, or assigned as Fixer or Tester.
GET /projects/74/activity/all_your_issues.json
will return all activity for issues for the project where id = 74
where the authenticated user is CC’d on, or assigned as Fixer or Tester.
Request parameters: see Activity Request Parameters
Sample response: see Activity Sample Response
All active issues
GET /activity/all_active_issues.json
will return all activity for issues where the status is anything other than Closed, Fixed, Duplicate Issue, or On Hold.
GET /projects/74/activity/all_active_issues.json
will return all activity for issues for the project where id = 74
where the status is anything other than Closed, Fixed, Duplicate Issue, or On Hold.
Request parameters: see Activity Request Parameters
Sample response: see Activity Sample Response
All inactive issues
GET /activity/all_inactive_issues.json
will return all activity for issues where the status is Closed, Fixed, or Duplicate Issue.
GET /projects/74/activity/all_inactive_issues.json
will return all activity for issues for the project where id = 74
where the status is Closed, Fixed, or Duplicate Issue.
Request parameters: see Activity Request Parameters
Sample response: see Activity Sample Response
All issues on hold
GET /activity/all_on_hold_issues.json
will return all activity for issues where the status is On Hold.
GET /projects/74/activity/all_on_hold_issues.json
will return all activity for issues for the project where id = 74
where the status is On Hold.
Request parameters: see Activity Request Parameters
Sample response: see Activity Sample Response
All issues
GET /activity/all_issues.json
will return all activity for issues on projects the authenticated user has access to.
GET /projects/74/activity/all_issues.json
will return all activity for issues for project where id = 74
.
Request parameters: see Activity Request Parameters
Sample response: see Activity Sample Response
Issues by custom filter
GET /activity/issues_by_global_custom_filter/13.json
will return all activity for issues where custom_filter_id = 13
. The authenticated user must have access to the filter – use Get global filters for allowable id
s.
GET /projects/74/activity/issues_by_custom_filter/13.json
will return all activity for issues for project where id = 74
and custom_filter_id = 13
. The authenticated user must have access to the filter – use Get project filters for allowable id
s.
Request parameters: see Activity Request Parameters
Sample response: see Activity Sample Response
Request parameters
All Activity methods accept the same request parameters:
tag_ids
: Optional comma-delimited list of tag id
s. Only issues matching at least one of the tag id
s will be returned. You can retrieve tag id
s on a per-project basis by using Get Project.
tag_ids_not_matching
: Optional comma-delimited list of tag id
s. Only issues not matching at least one of the tag id
s will be returned. You can retrieve tag id
s on a per-project basis by using Get Project.
start_due_date
: Optional date. Only issues with a due date after the start due date will be returned.
end_due_date
: Optional date. Only issues with a due date before the end due date will be returned.
from_date
: Optional date/time. Only activity that occurred after this date will return. If no value is passed, the date will default to 12:00:00am of the current day. If a value is passed, the until_date
parameter is also expected.
until_date
: Optional date/time. Only activity that occurred before this date will return. If no value is passed, the date will default to 11:59:59pm of the current day. If a value is passed, the from_date
parameter is also expected.
hours_from_utc
: Optional positive or negative integer representing the hours away from Universal Coordinated Time. Default is 0
. The from_date
and until_date
for activity retrieved will be based off the converted local time.
issue_creation_type
: Optional id
of the creation type of the issues. Use Creation Types for allowable values. Default is 0
(All types).
skip
: Optional number of issues to skip in the result set. Default is 0
.
take
: Optional number of issues to return in the result set. Default is 50
; maximum is 500
.
Sample response
All Activity methods return the same JSON data:
[
{
"title": "#8: Page does not work in Netscape Navigator 3.1.1",
"order_number": 8,
"project": {
"id": 74,
"name": "Acme Corporate Website Redesign"
},
"created_on": "/Date(1352351481160)/",
"creator": {
"id": 88,
"name": "John Doe",
"avatar_url": "https://www.someimage.com/some-image.png"
},
"description": "Assigned to *Jane Smith* as the fixer, and to *John Doe* as the tester. This issue is marked as *Medium*.",
"action": "John Doe created an issue.",
"attachments": [
{
"id": 15222,
"path": "https://myattachments.com/some-image.gif"
},
{
"id": 15223,
"path": "https://myattachments.com/some-image.png"
}
]
},
{
"title": "#15: Error on login screen",
"order_number": 15,
"project": {
"id": 74,
"name": "Acme Corporate Website Redesign"
},
"created_on": "/Date(1352351481160)/",
"creator": {
"id": 89,
"name": "Jane Smith",
"avatar_url": "https://www.someimage.com/some-image.png"
},
"description": "I am looking into this issue now.",
"action": "Jane Smith added a comment.",
"attachments": []
}
]
Custom Filters
Use the following methods to get custom filters at the global or project level.
Get global filters
GET /global_custom_filters.json
returns all global filters (used for retrieving global issue lists and activity).
[
{
"id": 1,
"value": "Critical issues"
},
{
"id": 2,
"value": "In-progress issues for John"
},
{
"id": 3,
"value": "Issues created in the past week"
}
]
Get project filters
GET /projects/74/custom_filters.json
returns all custom filters for project where id = 74
(used for retrieving issue lists and activity).
[
{
"id": 4,
"value": "Acme Project closed issues"
},
{
"id": 5,
"value": "Issues tagged with 'ie6' in Acme Project"
},
{
"id": 6,
"value": "Jane's Acme Project issues"
}
]
Release Builds
Use the methods below to create and access release builds.
Get release builds for project
GET /projects/74/release_builds.json
returns all release builds in the project with id = 74
.
[
{
"id": 4948,
"title": "Release Build for January 27, 2014",
"created_on": "/Date(1390870135790)/",
"description": "Fixed up several bugs",
"relative_url": "/issuetracker/projects/74/issues_by_release_build/4948",
"order_numbers": [
412,
413
]
},
{
"id": 3357,
"title": "Release Build for Friday, February 24, 2012",
"created_on": "/Date(1330117364753)/",
"description": "",
"relative_url": "/issuetracker/projects/74/issues_by_release_build/3357",
"order_numbers": [
380,
403
]
}
]
Create release build for project
POST /projects/74/release_builds.json
creates a new release build in the project with id = 74
.
Request parameters:
order_numbers
: Required string. Comma-delimited issue order numbers to be included in the build. Issues must belong to the same project as the release build, and must have a current status of “Ready for Next Release”. See Get Release Build Info to get allowable order numbers.
title
: Required string. The title for the release build.
description
: Required string. A description of the release build.
email_body
: Optional string. An email message to be sent to users.
tags
: Optional comma-delimited string of tags to add to each issue in the release build.
user_ids_to_cc
: Optional string. Comma-delimited id
s of users who should receive an email notification. See Get People in Project for allowable id
s.
Sample response: Returns all release builds in the project. See Get Release Builds for Project.
Get Release Build Info
GET /projects/74/release_builds/info.json
returns the list of order numbers which are “Ready for Next Release” in the project with id = 74
.
{
"id": 74,
"title": "Acme Corporation Website Redesign",
"order_numbers_ready_for_next_release": [
112,
113
]
}
Priority Levels
GET /priority_levels.json
will return all available priority levels for an issue.
[
{
"id": 1,
"name": "Low"
},
{
"id": 2,
"name": "Medium"
},
{
"id": 3,
"name": "High"
},
{
"id": 4,
"name": "Critical"
}
]
Creation Types
GET /issue_creation_types.json
will return all issue creation types.
[
{
"id": 0,
"name": "all"
},
{
"id": 1,
"name": "private only"
},
{
"id": 2,
"name": "public only"
}
]
Sort Types
GET /issue_sort_types.json
will return all issue list sort types.
[
{
"id": 1,
"name": "order number"
},
{
"id": 2,
"name": "project title"
},
{
"id": 3,
"name": "priority"
},
{
"id": 4,
"name": "status"
},
{
"id": 5,
"name": "updated"
},
{
"id": 6,
"name": "fixer"
},
{
"id": 7,
"name": "tester"
},
{
"id": 8,
"name": "due date"
},
{
"id": 9,
"name": "created"
},
{
"id": 10,
"name": "created (oldest first)"
},
{
"id": 11,
"name": "updated (oldest first)"
},
{
"id": 12,
"name": "issue title"
}
]