<< Back to GForge REST API

Entity: Trackeritem

GET

getAssociations

Get an array with basic objects of associated items to the provided item organized by object type

Parameters (1)

Name Type Description
id string Unique database identifier for the tracker item. Provided in the route or query string, e.g. GET /api/trackeritem/:id/associations.

Return: array

Associative array keyed by section name (e.g. forummessage, scmcommit, docmanfile, wikipage, frsrelease) where each value is an array of Basic API objects.

Example 1

Retrieve Tracker Item relations array of items for ID :
  GET http://api.mygforge.tld/trackeritem/22883/associations

 {
     "paging": {
         "page_size":20,
         "page_num":1,
         "sort_field":"id",
         "sort_dir":"asc"
      },
     "items":{
         "forummessage": [ ForumMessageBasic objects],
         "scmcommit": [ ScmCommitBasic objects ],
         "docmanfile": [ DocmanFileBasic objects ],
         "wikipage": [ WikiPageBasic objects ],
         "frsrelease": [ FrsReleaseBasic objects ]
      }
}

getAttachment

Get binary object corresponding to an attachment for a given tracker item and attachment id.

Parameters (3)

Name Type Description
id string Tracker item ID. Provided in the route.
attachmentId string Filesystem record ID for the attachment. Provided in the route.
option string Controls the response format. Absent or open sends the binary file inline. data returns the attachment metadata as a FilesystemBasic object.

Return: (none)

Example 1

Retrieve binary object for a specified tracker item ID and attachment ID:
  GET http://api.mygforge.tld/trackeritem/2/attachment/5/some-picture.png

getBranches

Get the branch(es) associated with this TI. These branch(es) will be the first place that associated commits we added to the repository.

Parameters (1)

Name Type Description
id string Unique database identifier for the tracker item. Provided in the route, e.g. GET /api/trackeritem/:id/branches.

Return: string[]

The list of zero or more branch name(s) that contain original commits for this TI.

getDetails

Get detailed data for a specific Tracker item, by specifying the DB Id for the requested object

Parameters (2)

Name Type Description
id string Unique database identifier for the tracker item to be retrieved. Provided in the route, e.g. GET /api/trackeritem/:id/details.
rel string Comma-separated list of related data sections to include. Supported values: messages, attachments, associations, dependencies, monitoring, merge_status, commits, merge_comments, events, duplicates, field_elements.

Related Entities (11)

Return: \gforge\plugins\tracker\models\api\TrackerItemBasic

A TrackerItemBasic structure if the tracker item exists.

Name Type Description
id int Unique database identifier
statusId int Status for this tracker item (0 = closed, 1 = open). See TrackerItem constants for values.
priority int Numeric priority (1 - 5) for this item. See TrackerItem constants and the getStaticPriorityLabel method for more details.
openDate \DateTime Date/time when this item was last opened (created, re-opened), or the date/time when the task must start.
closeDate \DateTime Date/time when this item was last closed, or the date/time when the task must finish.
summary string Summary for this tracker item
details string Detailed description for this tracker item. Stored verbatim as either HTML or Markdown.
tracker mixed Tracker (list) to which this tracker item belongs. On input, can be an id value or an object with an id property. On output, the model is converted to a TrackerBasic structure.
waitingFor int For support purposes, identifies which party "owns" the item. See TrackerItem constants for details.
sprint \TrackerItemExtraField The sprint to which this TI belongs (if any). For this usage, the id, fieldId and fieldType values are always null
submittedBy \UserBasic User that submitter this tracker item
lastModifiedDate string Date for the last modification on this tracker item
lastModifiedBy \UserBasic User who did the last modification on this tracker item
sortOrder int Sort order for this tracker item. This field is for legacy compatibility, and is read-only.
parent int Parent tracker item
hasSubitems bool Indicates if this tracker item is a parent of other tracker items
subitemsCount int Number of children for this tracker item
lockStatus int Indicates if the TI is locked for edit
reactions mixed Assoc array of unixName => reaction. Can be empty/empty string. This field is not updated via API, use postReaction method instead.
storyPoints int A value from the available story points in the corresponding tracker
rel array A flexible set of related data
extraFields array The list of extra field names and values

Example 1

Retrieve Tracker item details for ID :
  GET http://api.mygforge.tld/trackeritem/2/details

{
"id": 2,
"fieldsData": {
"bug_extra_field_": {
"id": 0,
"alias": "bug_extra_field_",
"fieldName": "Bug Extra Field 2",
"values": [
{
"id": 113,
"alias": null,
"value": "Element 2"
}
],
"fieldOrder": 0,
"isIntrinsic": false
        },
        "testmembersfield": {
            "id": 0,
            "alias": "testmembersfield",
            "fieldName": "test_members:field",
            "values": null,
            "fieldOrder": 1,
            "isIntrinsic": false
        },
        "testnumeric": {
            "id": 0,
            "alias": "testnumeric",
            "fieldName": "test_numeric",
            "values": "",
            "fieldOrder": 2,
            "isIntrinsic": false
        },
        "testdate": {
            "id": 0,
            "alias": "testdate",
            "fieldName": "test_date",
            "values": "Jan 04 2010",
            "fieldOrder": 3,
            "isIntrinsic": false
        },
        "testserial": {
            "id": 0,
            "alias": "testserial",
            "fieldName": "test_serial",
            "values": "1",
            "fieldOrder": 4,
            "isIntrinsic": false
        },
        "status_test": {
            "id": 0,
            "alias": "status_test",
            "fieldName": "Status Test",
            "values": [
                {
                    "id": 430,
                    "alias": null,
                    "value": "Open"
                }
            ],
            "fieldOrder": 5,
            "isIntrinsic": false
        },
        "fixedinrelease": {
            "id": 0,
            "alias": "fixedinrelease",
            "fieldName": "Fixed In Release",
            "values": [
                {
                    "id": 17,
                    "alias": "",
                    "value": "test-release3"
                }
            ],
            "fieldOrder": 6,
            "isIntrinsic": false
        },
        "foundinrelease": {
           "id": 0,
            "alias": "foundinrelease",
            "fieldName": "Found In Release",
            "values": null,
            "fieldOrder": 7,
            "isIntrinsic": false
        },
        "test_multiselect_box": {
            "id": 0,
            "alias": "test_multiselect_box",
            "fieldName": "Test MultiSelect Box",
            "values": [
                {
                    "id": 121,
                    "alias": null,
                    "value": "Multiselect Element2"
                }
            ],
            "fieldOrder": 8,
            "isIntrinsic": false
        },
        "test_checkbox_field": {
            "id": 0,
            "alias": "test_checkbox_field",
            "fieldName": "Test CheckBox Field",
            "values": [
                {
                    "id": 125,
                    "alias": null,
                    "value": "Element 2"
                },
                {
                    "id": 123,
                    "alias": null,
                    "value": "Checkbox Element2"
                },
                {
                    "id": 124,
                    "alias": null,
                    "value": "Element 1"
                }
            ],
            "fieldOrder": 9,
            "isIntrinsic": false
        },
        "test_text_field": {
            "id": 0,
            "alias": "test_text_field",
            "fieldName": "Test Text Field",
            "values": "&amp;amp;amp;amp;lt;data  sample&amp;amp;amp;a",
            "fieldOrder": 10,
            "isIntrinsic": false
        },
        "test_text_area": {
            "id": 0,
            "alias": "test_text_area",
            "fieldName": "Test Text Area",
            "values": "test test test\r\ntest test test\r\nfoo bar baz",
            "fieldOrder": 11,
            "isIntrinsic": false
        },
        "test_radio": {
            "id": 0,
            "alias": "test_radio",
            "fieldName": "Test Radio",
            "values": [
                {
                    "id": 128,
                    "alias": null,
                    "value": "Test Radio Button 1"
                }
            ],
            "fieldOrder": 12,
            "isIntrinsic": false
        },
        "resolution": {
            "id": 0,
            "alias": "resolution",
            "fieldName": "Resolution",
            "values": [
                {
                    "id": 399,
                    "alias": null,
                    "value": "Out of Date"
                }
            ],
            "fieldOrder": 13,
            "isIntrinsic": false
        },
        "group": {
            "id": 0,
            "alias": "group",
            "fieldName": "Group",
            "values": [
                {
                    "id": 393,
                    "alias": null,
                    "value": "v1.0 (example)"
                }
            ],
            "fieldOrder": 14,
            "isIntrinsic": false
        },
        "category": {
            "id": 0,
            "alias": "category",
            "fieldName": "Category",
            "values": [
                {
                    "id": 429,
                    "alias": null,
                    "value": "Test Category 4"
                }
            ],
            "fieldOrder": 15,
            "isIntrinsic": false
        },
        "test_select_box": {
            "id": 0,
            "alias": "test_select_box",
            "fieldName": "Test Select Box",
            "values": null,
            "fieldOrder": 16,
            "isIntrinsic": false
        }
    },
    "assignees": [
        {
            "id": 8388,
            "unixName": "mpapayannis",
            "password": null,
            "firstname": "Mario",
            "lastname": "Papayannis",
            "email": "mpapayannis@gforgegroup.com",
            "timezone": "America/Buenos_Aires",
            "status": 1,
            "externalId": null,
            "isGroup": "N",
            "ccode": "AR",
            "language": "en   ",
            "img_url": "/images/stock_avatars/default.png",
            "html_url": "/gf/user/mpapayannis/",
            "details_url": "/api/user/mpapayannis/details",
            "api_url": "/api/user/mpapayannis"
        }
    ],
    "messages": [
        {
            "id": 1,
            "adddate": {
                "date": "2002-11-29 01:06:52",
                "timezone_type": 1,
                "timezone": "-03:00"
            },
            "body": "Logged In: NO 
\n
\nergreg", "user": { "id": 100, "unixName": "None", "password": null, "firstname": "Nobody", "lastname": " ", "email": "noreply@gforge.org", "timezone": "GMT", "status": 1, "externalId": null, "isGroup": "N", "ccode": "US", "language": "en ", "img_url": "/images/stock_avatars/default.png", "html_url": "/gf/user/None/", "details_url": "/api/user/None/details", "api_url": "/api/user/None" } }, { "id": 870, "adddate": { "date": "2003-07-08 20:00:02", "timezone_type": 1, "timezone": "-03:00" }, "body": "Logged In: YES
\nuser_id=1402
\n
\nhttp://www.test.com", "user": { "id": 1402, "unixName": "jlperla", "password": null, "firstname": "JP", "lastname": " ", "email": "noreply@gforge.org", "timezone": "GMT", "status": 1, "externalId": null, "isGroup": "N", "ccode": "US", "language": "en ", "img_url": "/images/stock_avatars/default.png", "html_url": "/gf/user/jlperla/", "details_url": "/api/user/jlperla/details", "api_url": "/api/user/jlperla" } }, ], "scmCommits": null, "times": [ { "id": 5, "dateEntry": { "date": "2006-10-10 00:00:00", "timezone_type": 3, "timezone": "America/Buenos_Aires" }, "hours": 4, "trackerTimeCode": 1, "user": 1 }, { "id": 6, "dateEntry": { "date": "2006-10-10 00:00:00", "timezone_type": 3, "timezone": "America/Buenos_Aires" }, "hours": 4, "trackerTimeCode": 2, "user": 1 }, { "id": 7, "dateEntry": { "date": "2006-09-29 00:00:00", "timezone_type": 3, "timezone": "America/Buenos_Aires" }, "hours": 4, "trackerTimeCode": 2, "user": 1 }, { "id": 8, "dateEntry": { "date": "2006-09-29 00:00:00", "timezone_type": 3, "timezone": "America/Buenos_Aires" }, "hours": 4, "trackerTimeCode": 1, "user": 1 }, { "id": 299, "dateEntry": { "date": "2008-08-21 00:00:00", "timezone_type": 3, "timezone": "America/Buenos_Aires" }, "hours": 12, "trackerTimeCode": 9, "user": 8388 } ], "duplicateBy": [ { "id": 3, "tracker": 101, "statusId": 0, "submittedBy": 1, "summary": "Test Bug 2", "lastModifiedDate": { "date": "2010-12-02 15:13:03", "timezone_type": 1, "timezone": "-03:00" }, "lastModifiedBy": 1, "sortOrder": 0, "parent": null, "hasSubitems": false, "subitemsCount": 0, "fieldsData": [] }, { "id": 4, "tracker": 101, "statusId": 1, "submittedBy": 1, "summary": "Test Bug 3", "lastModifiedDate": { "date": "2006-09-21 12:42:43", "timezone_type": 1, "timezone": "-03:00" }, "lastModifiedBy": 1, "sortOrder": 0, "parent": null, "hasSubitems": false, "subitemsCount": 0, "fieldsData": [] } ], "duplicateOf": [], "dependentUponBy": [ { "id": 3, "tracker": 101, "statusId": 0, "submittedBy": 1, "summary": "Test Bug 2", "lastModifiedDate": { "date": "2010-12-02 15:13:03", "timezone_type": 1, "timezone": "-03:00" }, "lastModifiedBy": 1, "sortOrder": 0, "parent": null, "hasSubitems": false, "subitemsCount": 0, "fieldsData": [] } ], "dependentOn": [], "tracker": { "id": 101, "project": 5, "trackerName": "Bugs", "description": "Bug Tracking System", "submitInstructions": "", "browseInstructions": "", "numItems": 133, "numItemsOpen": 121, "trackerType": 1, "details_url": "/api/tracker/101/detail", "api_url": "/api/tracker/101" }, "statusId": 1, "submittedBy": { "id": 1, "unixName": "bigdisk", "password": null, "firstname": "Timothy", "lastname": "Perdue", "email": "tim.perdue@gmail.com", "timezone": "America/Chicago", "status": 2, "externalId": null, "isGroup": "N", "ccode": "US", "language": "en ", "img_url": "/images/stock_avatars/default.png", "html_url": "/gf/user/bigdisk/", "details_url": "/api/user/bigdisk/details", "api_url": "/api/user/bigdisk" }, "summary": "Test Bug 1", "lastModifiedDate": { "date": "2010-02-08 15:35:19", "timezone_type": 1, "timezone": "-03:00" }, "lastModifiedBy": 4550, "sortOrder": 0, "parent": null, "hasSubitems": false, "subitemsCount": 0 }

getHistory

Get History items for a given Tracker item object, by specifying the DB Id for the requested object

Parameters (1)

Name Type Description
id string Unique database identifier for the tracker item. Provided in the route or query string, e.g. GET /api/trackeritem/:id/history.

Return: \gforge\plugins\tracker\models\api\TrackerItemHistory[]

An array of TrackerItemHistory structures if the tracker item exists. Otherwise, a NotFoundException (404 response).

Name Type Description
activityOrigin string Indicates the record origin (activity log or audit trail). There are two possible values, models\ActivityLog::SECTION and models\AuditTrail::SECTION
activityDate int Date that corresponds to this activity item
user int User that caused the activity
data array with activity data
activityType string Type of activity

Example 1

Retrieve Tracker Item history items for ID :
  GET http://api.mygforge.tld/trackeritem/232/history

    {
    "paging": {
    "page_size": 20,
    "page_num": 1,
    "sort_field": "id",
    "sort_dir": "asc"
    },
    "items": [
         {
         "activityOrigin": "audit_trail",
         "activityDate": {
         "date": "2012-11-30 11:20:35",
         "timezone_type": 1,
         "timezone": "-03:00"
         },
         "user": {
             "id": 5945,
             "unixName": "mtutty",
             "password": null,
             "firstname": "Michael",
             "lastname": "Tutty",
             "email": "MTUTTY@gforgegroup.com",
             "timezone": "America/Chicago",
             "status": 1,
             "externalId": null,
             "isGroup": "N",
             "ccode": "US",
             "language": "en   ",
             "theme": 1,
             "img_url": "/api/user/mtutty/avatar",
             "html_url": "/user/mtutty/",
             "details_url": "/api/user/mtutty/details",
             "isSiteAdmin": true,
             "api_url": "/api/user/mtutty"
         },
         "detail": "Field: status_id: 1 -> 0",
         "activityType": ""
         },
         {
         "activityOrigin": "audit_trail",
         "activityDate": {
             "date": "2012-11-29 18:22:13",
             "timezone_type": 1,
             "timezone": "-03:00"
         },
         "user": {
             "id": 5945,
             "unixName": "mtutty",
             "password": null,
             "firstname": "Michael",
             "lastname": "Tutty",
             "email": "MTUTTY@gforgegroup.com",
             "timezone": "America/Chicago",
             "status": 1,
             "externalId": null,
             "isGroup": "N",
             "ccode": "US",
             "language": "en   ",
             "theme": 1,
             "img_url": "/api/user/mtutty/avatar",
             "html_url": "/user/mtutty/",
             "details_url": "/api/user/mtutty/details",
             "isSiteAdmin": true,
             "api_url": "/api/user/mtutty"
         },
         "detail": "Field: _created_:  -> 20120614 -> 20121129 update script does not set up Git template project properly",
         "activityType": ""
         }
     ]
 }

getTrackeritem

Searches for tracker items matching criteria, or retrieves a specific tracker item by ID

Returns 0 or more TrackerItemBasic models in an array, if a search is being made. If a specific Tracker item is requested by passing the db ID, it will return either null or the Tracker item object.

Parameters (16)

Name Type Description
id string Unique database identifier for a specific tracker item. When present, the remaining filter parameters are ignored and a single item is returned.
tracker string Tracker ID (numeric or unix name) to scope the search to.
project string Project ID or unix name to scope the search to.
query string Saved query ID to execute.
statusId int Status filter. 1 = Open, 0 = Closed.
summary string Full or partial summary text to filter by.
lastModifiedBy string User ID or unix name of the last person to modify the item.
parent int Parent tracker item ID filter.
hasSubitems bool When true, returns only items that have sub-items.
rel string Comma-separated list of related data sections to include in the response.
download string When non-empty, streams a file download instead of returning JSON.
format string Download format. Allowed values: csv, xml. Default is csv.
sort_field string Field to sort list results by. Allowed values: id, tracker_id, summary, priority, lastModifiedDate, submittedByName, openDate, closeDate. Default is summary.
sort_dir string Sort direction. Allowed values: asc, desc. Default is asc.
page_num int Zero-based page number. Default is 0.
page_size int Number of entries per page. Default is 20. Capped by the trackeritem.maxrows configuration value.
Sortable
Use the sort_field and sort_dir parameters to control the order in which records are returned.
Pageable
Use the page_size and page_num parameters to control the set of records returned.

Related Entities (6)

Return: \gforge\plugins\tracker\models\api\TrackerItemBasic

Zero or more TrackerItemBasic records for a search, or a single TrackerItemBasic when an id is resolved. Returns null during a download operation.

Name Type Description
id int Unique database identifier
statusId int Status for this tracker item (0 = closed, 1 = open). See TrackerItem constants for values.
priority int Numeric priority (1 - 5) for this item. See TrackerItem constants and the getStaticPriorityLabel method for more details.
openDate \DateTime Date/time when this item was last opened (created, re-opened), or the date/time when the task must start.
closeDate \DateTime Date/time when this item was last closed, or the date/time when the task must finish.
summary string Summary for this tracker item
details string Detailed description for this tracker item. Stored verbatim as either HTML or Markdown.
tracker mixed Tracker (list) to which this tracker item belongs. On input, can be an id value or an object with an id property. On output, the model is converted to a TrackerBasic structure.
waitingFor int For support purposes, identifies which party "owns" the item. See TrackerItem constants for details.
sprint \TrackerItemExtraField The sprint to which this TI belongs (if any). For this usage, the id, fieldId and fieldType values are always null
submittedBy \UserBasic User that submitter this tracker item
lastModifiedDate string Date for the last modification on this tracker item
lastModifiedBy \UserBasic User who did the last modification on this tracker item
sortOrder int Sort order for this tracker item. This field is for legacy compatibility, and is read-only.
parent int Parent tracker item
hasSubitems bool Indicates if this tracker item is a parent of other tracker items
subitemsCount int Number of children for this tracker item
lockStatus int Indicates if the TI is locked for edit
reactions mixed Assoc array of unixName => reaction. Can be empty/empty string. This field is not updated via API, use postReaction method instead.
storyPoints int A value from the available story points in the corresponding tracker
rel array A flexible set of related data
extraFields array The list of extra field names and values

Example 1

Find tracker items order by trackers desc:
http://api.mygforge.tld/trackeritem/?sort_field=tracker&sort_dir=desc

{
  "id": 15641,
  "tracker": {
      "id": 10661,
      "project": 138,
      "trackerName": "Business Development",
      "description": "Business Development Tracker",
      "submitInstructions": "",
      "browseInstructions": "Grab 25 Records and "Mass Update" the assignee field to Olivia Bradley",
      "numItems": 3589,
      "numItemsOpen": 3523,
      "trackerType": 1,
      "details_url": "\/api\/tracker\/10661\/detail",
      "api_url": "\/api\/tracker\/10661",
      "fields": {
          "priority": "Priority",
          "open_date": "Open Date",
          "close_date": "Close Date",
          "details": "Details",
          "waiting_for": "Waiting For",
          "status": "Status",
          "usefortraining": "Use for Training",
          "website": "Website",
          "city": "City",
          "state": "State",
          "industriesserved83": "Industries Served",
          "companybio23": "Company Bio",
          "keystakeholder": "Key Stakeholder",
          "stakeholderstitle": "Stakeholder's Title",
          "stakeholdersemail": "Stakeholder's Email",
          "primaryphone": "Primary Phone #",
          "secondaryphone": "Secondary Phone #",
          "businessproblems50": "Business Problems",
          "provocationquestio76": "Provocation Questions",
          "nextcontact": "Next Contact",
          "emailcontent": "Email Content",
          "linkedincontent": "LinkedIn Content"
      }
  },
  "statusId": 0,
  "submittedBy": {
      "id": 25868,
      "unixName": "tbibbs",
      "password": null,
      "firstname": "Tony",
      "lastname": "Bibbs",
      "email": "tbibbs@gforgegroup.com",
      "timezone": "US\/Central",
      "status": 1,
      "externalId": null,
      "isGroup": "N",
      "ccode": "US",
      "language": "en   ",
      "theme": 1,
      "img_url": "\/images\/custom_avatars\/25868.jpg",
      "html_url": "\/gf\/user\/tbibbs\/",
      "details_url": "\/api\/user\/tbibbs\/details",
      "isSiteAdmin": true,
      "api_url": "\/api\/user\/tbibbs"
  },
  "summary": "Zywave, Inc.",
  "lastModifiedDate": {
      "date": "2014-02-27 14:51:50",
      "timezone_type": 1,
      "timezone": "+00:00"
  },
  "lastModifiedBy": 33151,
  "sortOrder": 0,
  "parent": null,
  "hasSubitems": false,
  "subitemsCount": 0,
  "fieldsData": {
      "status": {
          "id": 257651,
          "elementName": "Non-Believer"
      },
      "priority": 3,
      "waiting_for": 0,
      "usefortraining": {
          "id": 258789,
          "alias": "no",
          "elementName": "No"
      },
      "details": null,
      "open_date": {
          "date": "2014-01-09 21:57:28",
          "timezone_type": 1,
          "timezone": "+00:00"
      },
      "close_date": {
          "date": "2014-02-06 16:52:47",
          "timezone_type": 1,
          "timezone": "+00:00"
      },
      "website": "zywave.com",
      "city": "Milwaukee",
      "state": {
          "id": 257716,
          "alias": "wi",
          "elementName": "Wisconsin"
      },
      "industriesserved83": {
          "id": 257664,
          "elementName": "Software Consulting"
      },
      "companybio23": "<p>\r\n&lt;p&gt; Zywave draws on industry expertise and technology ingenuity to create software-enabled solutions that are the choice of more than 2,700 clients around the world.&amp;nbsp;&lt;br \/&gt; &lt;br \/&gt; With deep industry insight, Zywave provides clients innovative ways to differentiate and grow their business through marketing communications, agency automation, client portal and data analytics technology tools that set the industry standard.&lt;\/p&gt; &lt;p&gt; &lt;br \/&gt; Key Stakeholder: Joe Gibson&lt;br \/&gt; Title: Chief Financial Officer&lt;br \/&gt; Phone: (414) 454-6100&lt;br \/&gt; Secondary Phone: (414) 454-6100&lt;\/p&gt;<\/p>\r\n",
      "keystakeholder": "Andrew King",
      "stakeholderstitle": "CIO \/ Vice President of Information Systems",
      "stakeholdersemail": "andrew.king@zywave.com",
      "primaryphone": "(414) 918-2626",
      "secondaryphone": "(414) 918-2626",
      "businessproblems50": "<p>\r\n&lt;ol&gt; &lt;li&gt;Lack of Communication&lt;\/li&gt; &lt;li&gt;Different Project Sizes&lt;\/li&gt; &lt;li&gt;Missed Deadlines&lt;\/li&gt; &lt;\/ol&gt;<\/p>\r\n",
      "provocationquestio76": "<p>\r\n&lt;ol&gt; &lt;li&gt;What sort of collaboration tools are you using to help improve communication among team members within and across your projects?&lt;\/li&gt; &lt;li&gt;Do you feel your current processes and tools scale to your needs project to project?&lt;\/li&gt; &lt;li&gt;How often are your teams hitting their deadlines?&lt;\/li&gt; &lt;\/ol&gt;<\/p>\r\n",
      "nextcontact": "Feb 05 2014",
      "emailcontent": "<p>\r\n&lt;p&gt; Subject Line: Make your customers happier with better collaboration&lt;\/p&gt; &lt;p&gt; Hi Andrew,&lt;\/p&gt; &lt;p&gt; My name is Olivia Bradley and I am a Business Development Intern with The GForge Group and we provide a software collaboration suite that provides source code management, allows you to track bugs, issues and tasks, and provides your teams a document management system and integrated chat.&lt;\/p&gt; &lt;p&gt; I see that your company&amp;nbsp;creates software-enabled solutions, and I would like to get your feedback on the questions:&lt;\/p&gt; &lt;ol&gt; &lt;li&gt;What sort of collaboration tools are you using to help improve communication among team members within and across your projects?&lt;\/li&gt; &lt;li&gt;Do you feel your current processes and tools scale to your needs project to project?&lt;\/li&gt; &lt;li&gt;How often are your teams hitting their deadlines?&lt;\/li&gt; &lt;\/ol&gt; &lt;p&gt; Thank you for your time, and please a take a minute to browse our website at &lt;a href=&quot;https:\/\/gforgegroup.com\/&quot; style=&quot;text-decoration:none;&quot;&gt;&lt;u&gt;https:\/\/gforgegroup.com&lt;\/u&gt;&lt;\/a&gt; and email me back with any questions you may have!&lt;\/p&gt; &lt;p&gt; &lt;br \/&gt; &amp;nbsp;&lt;\/p&gt;<\/p>\r\n",
      "linkedincontent": "<p>\r\n&lt;p&gt; &amp;nbsp;&lt;\/p&gt; &lt;p&gt; &amp;nbsp;&lt;\/p&gt;<\/p>\r\n"
  },
  "assignees": [{
      "id": 100,
      "unixName": "None",
      "password": null,
      "firstname": "Nobody",
      "lastname": " ",
      "email": "noreply@gforge.org",
      "timezone": "GMT",
      "status": 1,
      "externalId": null,
      "isGroup": "N",
      "ccode": "US",
      "language": "en   ",
      "theme": 1,
      "img_url": "\/images\/stock_avatars\/default.png",
      "html_url": "\/gf\/user\/None\/",
      "details_url": "\/api\/user\/None\/details",
      "isSiteAdmin": false,
      "api_url": "\/api\/user\/None"
  }],
  "submittedByName": "Tony Bibbs",
  "lastModifiedByName": "Tony Bibbs",
  "lastModifiedByImgUrl": "\/images\/custom_avatars\/0.jpg"
},
{
  "id": 18573,
  "tracker": {
      "id": 10661,
      "project": 138,
      "trackerName": "Business Development",
      "description": "Business Development Tracker",
      "submitInstructions": "",
      "browseInstructions": "Grab 25 Records and "Mass Update" the assignee field to Olivia Bradley",
      "numItems": 3589,
      "numItemsOpen": 3523,
      "trackerType": 1,
      "details_url": "\/api\/tracker\/10661\/detail",
      "api_url": "\/api\/tracker\/10661",
      "fields": {
          "priority": "Priority",
          "open_date": "Open Date",
          "close_date": "Close Date",
          "details": "Details",
          "waiting_for": "Waiting For",
          "status": "Status",
          "usefortraining": "Use for Training",
          "website": "Website",
          "city": "City",
          "state": "State",
          "industriesserved83": "Industries Served",
          "companybio23": "Company Bio",
          "keystakeholder": "Key Stakeholder",
          "stakeholderstitle": "Stakeholder's Title",
          "stakeholdersemail": "Stakeholder's Email",
          "primaryphone": "Primary Phone #",
          "secondaryphone": "Secondary Phone #",
          "businessproblems50": "Business Problems",
          "provocationquestio76": "Provocation Questions",
          "nextcontact": "Next Contact",
          "emailcontent": "Email Content",
          "linkedincontent": "LinkedIn Content"
      }
  },
  "statusId": 1,
  "submittedBy": {
      "id": 25868,
      "unixName": "tbibbs",
      "password": null,
      "firstname": "Tony",
      "lastname": "Bibbs",
      "email": "tbibbs@gforgegroup.com",
      "timezone": "US\/Central",
      "status": 1,
      "externalId": null,
      "isGroup": "N",
      "ccode": "US",
      "language": "en   ",
      "theme": 1,
      "img_url": "\/images\/custom_avatars\/25868.jpg",
      "html_url": "\/gf\/user\/tbibbs\/",
      "details_url": "\/api\/user\/tbibbs\/details",
      "isSiteAdmin": true,
      "api_url": "\/api\/user\/tbibbs"
  },
  "summary": "ZyEdge LLC",
  "lastModifiedDate": {
      "date": "2014-01-09 22:11:33",
      "timezone_type": 1,
      "timezone": "+00:00"
  },
  "lastModifiedBy": 0,
  "sortOrder": 0,
  "parent": null,
  "hasSubitems": false,
  "subitemsCount": 0,
  "fieldsData": {
      "priority": 3,
      "usefortraining": "",
      "waiting_for": 1,
      "status": {
          "id": 257718,
          "elementName": "Imported"
      },
      "open_date": {
          "date": "2014-01-09 22:11:33",
          "timezone_type": 1,
          "timezone": "+00:00"
      },
      "details": null,
      "close_date": null,
      "website": "zyedge.com",
      "city": "Reston",
      "state": {
          "id": 257713,
          "alias": "va",
          "elementName": "Virginia"
      },
      "industriesserved83": "",
      "keystakeholder": "Ryan West",
      "stakeholderstitle": "Chief Technology Officer",
      "primaryphone": "(703) 860-5087",
      "secondaryphone": "(703) 860-1111"
  },
  "assignees": [],
  "submittedByName": "Tony Bibbs",
  "lastModifiedByName": "Tony Bibbs",
  "lastModifiedByImgUrl": "\/images\/custom_avatars\/0.jpg"
},
{
  "id": 16993,
  "tracker": {
      "id": 10661,
      "project": 138,
      "trackerName": "Business Development",
      "description": "Business Development Tracker",
      "submitInstructions": "",
      "browseInstructions": "Grab 25 Records and "Mass Update" the assignee field to Olivia Bradley",
      "numItems": 3589,
      "numItemsOpen": 3523,
      "trackerType": 1,
      "details_url": "\/api\/tracker\/10661\/detail",
      "api_url": "\/api\/tracker\/10661",
      "fields": {
          "priority": "Priority",
          "open_date": "Open Date",
          "close_date": "Close Date",
          "details": "Details",
          "waiting_for": "Waiting For",
          "status": "Status",
          "usefortraining": "Use for Training",
          "website": "Website",
          "city": "City",
          "state": "State",
          "industriesserved83": "Industries Served",
          "companybio23": "Company Bio",
          "keystakeholder": "Key Stakeholder",
          "stakeholderstitle": "Stakeholder's Title",
          "stakeholdersemail": "Stakeholder's Email",
          "primaryphone": "Primary Phone #",
          "secondaryphone": "Secondary Phone #",
          "businessproblems50": "Business Problems",
          "provocationquestio76": "Provocation Questions",
          "nextcontact": "Next Contact",
          "emailcontent": "Email Content",
          "linkedincontent": "LinkedIn Content"
      }
  },
  "statusId": 1,
  "submittedBy": {
      "id": 25868,
      "unixName": "tbibbs",
      "password": null,
      "firstname": "Tony",
      "lastname": "Bibbs",
      "email": "tbibbs@gforgegroup.com",
      "timezone": "US\/Central",
      "status": 1,
      "externalId": null,
      "isGroup": "N",
      "ccode": "US",
      "language": "en   ",
      "theme": 1,
      "img_url": "\/images\/custom_avatars\/25868.jpg",
      "html_url": "\/gf\/user\/tbibbs\/",
      "details_url": "\/api\/user\/tbibbs\/details",
      "isSiteAdmin": true,
      "api_url": "\/api\/user\/tbibbs"
  },
  "summary": "Z-Source Incorporated",
  "lastModifiedDate": {
      "date": "2014-01-09 22:03:46",
      "timezone_type": 1,
      "timezone": "+00:00"
  },
  "lastModifiedBy": 0,
  "sortOrder": 0,
  "parent": null,
  "hasSubitems": false,
  "subitemsCount": 0,
  "fieldsData": {
      "priority": 3,
      "usefortraining": "",
      "waiting_for": 1,
      "status": {
          "id": 257718,
          "elementName": "Imported"
      },
      "open_date": {
          "date": "2014-01-09 22:03:46",
          "timezone_type": 1,
          "timezone": "+00:00"
      },
      "details": null,
      "close_date": null,
      "website": "zsourceintl.com",
      "city": "Pleasanton",
      "state": {
          "id": 257672,
          "alias": "ca",
          "elementName": "California"
      },
      "industriesserved83": "",
      "keystakeholder": "Jason Long",
      "stakeholderstitle": "Owner",
      "primaryphone": "(925) 401-0090",
      "secondaryphone": "(925) 401-0090"
  },
  "assignees": [],
  "submittedByName": "Tony Bibbs",
  "lastModifiedByName": "Tony Bibbs",
  "lastModifiedByImgUrl": "\/images\/custom_avatars\/0.jpg"
}

Example 2

Find a tracker item by matching summary contents:
  GET http://api.mygforge.tld/trackeritem/?summary=This+is+a+test

 [
   {
    "id": 15328,
    "tracker": 10345,
    "statusId": 1,
    "submittedBy": 33251,
    "summary": "this is a test",
    "lastModifiedDate": {
       "date": "2013-12-18 15:07:41",
       "timezone_type": 1,
       "timezone": "-03:00"
    },
    "lastModifiedBy": 33035,
    "sortOrder": 0,
    "parent": null,
    "hasSubitems": false,
    "subitemsCount": 0,
    "fieldsData": {
      "supportgroup": {
         "id": 0,
         "alias": "supportgroup",
         "fieldName": "Support group",
         "values": null,
         "fieldOrder": 10,
         "isIntrinsic": false
       },
       "status": {
         "id": 0,
         "alias": "status",
         "fieldName": "Status",
         "values": [
           {
             "id": 251491,
             "alias": "",
             "value": "Open"
           }
         ],
         "fieldOrder": 20,
         "isIntrinsic": false
       }
     }
   },
   {
    "id": 11258,
    "tracker": 10345,
    "statusId": 1,
    "submittedBy": 31917,
    "summary": "This is a test",
    "lastModifiedDate": {
      "date": "2013-11-01 16:12:13",
      "timezone_type": 1,
      "timezone": "-03:00"
     },
     "lastModifiedBy": 14030,
     "sortOrder": 0,
     "parent": null,
     "hasSubitems": false,
     "subitemsCount": 0,
     "fieldsData": {
       "supportgroup": {
         "id": 0,
         "alias": "supportgroup",
         "fieldName": "Support group",
         "values": null,
         "fieldOrder": 10,
         "isIntrinsic": false
       },
       "status": {
         "id": 0,
         "alias": "status",
         "fieldName": "Status",
         "values": null,
         "fieldOrder": 20,
         "isIntrinsic": false
       }
     }
   },
   {
    "id": 919,
    "tracker": 101,
    "statusId": 0,
    "submittedBy": 3697,
    "summary": "This is a test.",
    "lastModifiedDate": {
    "date": "2005-01-30 19:24:45",
      "timezone_type": 1,
      "timezone": "-03:00"
    },
    "lastModifiedBy": 100,
    "sortOrder": 0,
    "parent": null,
    "hasSubitems": false,
    "subitemsCount": 0,
    "fieldsData": {
      "testmembersfield": {
        "id": 0,
        "alias": "testmembersfield",
        "fieldName": "test_members:field",
        "values": null,
        "fieldOrder": 1,
        "isIntrinsic": false
      },
      "testserial": {
        "id": 0,
        "alias": "testserial",
        "fieldName": "test_serial",
        "values": "98",
        "fieldOrder": 4,
        "isIntrinsic": false
      }
    }
  },
]

Example 3

List all trackers items in a tracker:
  GET http://api.mygforge.tld/tracker/?tracker=285

[
{
  "id": 3522,
  "tracker": 285,
  "statusId": 0,
  "submittedBy": 1,
  "summary": "Buttons are ugly gray boxes instead of just disabled",
  "lastModifiedDate": {
    "date": "2013-09-09 15:44:54",
    "timezone_type": 1,
    "timezone": "-03:00"
  },
  "lastModifiedBy": 25868,
  "sortOrder": 0,
  "parent": null,
  "hasSubitems": false,
  "subitemsCount": 0,
  "fieldsData": {
    "details": {
       "id": 0,
       "alias": "details",
       "fieldName": "Details",
       "values": "Buttons are ugly gray boxes instead of just disabled",
       "fieldOrder": 0,
       "isIntrinsic": true
    },
    "resolution80": {
       "id": 0,
       "alias": "resolution80",
       "fieldName": "Resolution",
       "values": null,
       "fieldOrder": 3,
       "isIntrinsic": false
  },
    "status": {
       "id": 0,
       "alias": "status",
       "fieldName": "Status",
       "values": [
         {
           "id": 2951,
           "alias": null,
           "value": "Closed"
         }
       ],
       "fieldOrder": 4,
       "isIntrinsic": false
    }
  }
},
{
  "id": 4087,
  "tracker": 285,
  "statusId": 0,
  "submittedBy": 1,
  "summary": "Changes tab should have links to the viewvc wrapper at the website",
  "lastModifiedDate": {
    "date": "2013-09-09 15:44:55",
    "timezone_type": 1,
    "timezone": "-03:00"
  },
  "lastModifiedBy": 25868,
  "sortOrder": 0,
  "parent": null,
  "hasSubitems": false,
  "subitemsCount": 0,
  "fieldsData": {
    "details": {
      "id": 0,
      "alias": "details",
      "fieldName": "Details",
      "values": "Changes tab should have links to the viewvc wrapper at the website",
      "fieldOrder": 0,
      "isIntrinsic": true
    },
    "resolution80": {
      "id": 0,
      "alias": "resolution80",
      "fieldName": "Resolution",
      "values": null,
      "fieldOrder": 3,
      "isIntrinsic": false
    },
    "status": {
      "id": 0,
      "alias": "status",
      "fieldName": "Status",
      "values": [
        {
          "id": 2951,
          "alias": null,
          "value": "Closed"
        }
      ],
      "fieldOrder": 4,
      "isIntrinsic": false
    }
 }
}
]

POST

postAttachment

Processes a tracker item attachment upload

Parameters (4)

Name Type Description
id string Tracker item ID. Provided in the route.
hash string SHA hash of the binary chunk previously uploaded via the chunk-upload endpoint.
fileName string Original file name for the attachment.
fileType string MIME type of the attachment.

Return: array

Array with keys location (string — API URL of attachment metadata) and lastModifiedDate (string).

postClone

Clone a tracker item within the same tracker.

Parameters (3)

Name Type Description
id string Source tracker item ID. Provided in the route, e.g. POST /api/trackeritem/:id/clone.
copyAttachments bool When true, copies file attachments to the new item. Default is false.
summary string Optional custom summary for the cloned item. Falls back to the source item's summary when absent.

Return: \gforge\plugins\tracker\models\api\TrackerItemBasic

The newly created cloned tracker item.

Name Type Description
id int Unique database identifier
statusId int Status for this tracker item (0 = closed, 1 = open). See TrackerItem constants for values.
priority int Numeric priority (1 - 5) for this item. See TrackerItem constants and the getStaticPriorityLabel method for more details.
openDate \DateTime Date/time when this item was last opened (created, re-opened), or the date/time when the task must start.
closeDate \DateTime Date/time when this item was last closed, or the date/time when the task must finish.
summary string Summary for this tracker item
details string Detailed description for this tracker item. Stored verbatim as either HTML or Markdown.
tracker mixed Tracker (list) to which this tracker item belongs. On input, can be an id value or an object with an id property. On output, the model is converted to a TrackerBasic structure.
waitingFor int For support purposes, identifies which party "owns" the item. See TrackerItem constants for details.
sprint \TrackerItemExtraField The sprint to which this TI belongs (if any). For this usage, the id, fieldId and fieldType values are always null
submittedBy \UserBasic User that submitter this tracker item
lastModifiedDate string Date for the last modification on this tracker item
lastModifiedBy \UserBasic User who did the last modification on this tracker item
sortOrder int Sort order for this tracker item. This field is for legacy compatibility, and is read-only.
parent int Parent tracker item
hasSubitems bool Indicates if this tracker item is a parent of other tracker items
subitemsCount int Number of children for this tracker item
lockStatus int Indicates if the TI is locked for edit
reactions mixed Assoc array of unixName => reaction. Can be empty/empty string. This field is not updated via API, use postReaction method instead.
storyPoints int A value from the available story points in the corresponding tracker
rel array A flexible set of related data
extraFields array The list of extra field names and values

postDuplicate

Sets a tracker item as a duplicate of another tracker item.

Parameters (2)

Name Type Description
tid string The tracker item ID that is the duplicate (the one to be kept).
duplicateOfTid string The tracker item ID that the above item is a duplicate of.

Return: void

postEvent

Records a lifecycle event (approval or deployment) against a tracker item.

Parameters (7)

Name Type Description
id int Unique database identifier for the tracker item. Provided in the route, e.g. POST /api/trackeritem/:id/event.
eventType string Type of lifecycle event. Allowed values: approval, deployment.
note string Optional human-readable note to attach to the event.
label string Optional short label for the event.
succeeded int For deployment events only: 1 = succeeded (default), 0 = failed. Ignored for approval events (always recorded as succeeded).
fromElementId int For approval events: the source workflow element ID. Required.
toElementId int For approval events: the target workflow element ID. Required.

Return: \models\api\TrackerItemEventBasic

postFollowup

Creates or updates a tracker item follow-up. Expected parameters in the Request object are:

  • id: If defined we are updating a follow-up, otherwise adding a new one.
  • adddate: Date string
  • body: message string
  • user: user id

Parameters (5)

Name Type Description
id string Tracker item ID. Provided in the route, e.g. POST /api/trackeritem/:id/followup/:followupId.
followupId string Existing follow-up ID to update. Zero or absent means create a new follow-up.
body string HTML body of the follow-up message.
isSystemComment bool When true, skips notification emails and does not update the TI's last-modified timestamp.
fromEmail bool When true, sends notifications even for system comments.

Return: array

Single-key array with location set to the API URL of the parent TI.

postMove

Move a tracker item from its current tracker to a different tracker.

Parameters (2)

Name Type Description
id string Unique database identifier for the tracker item to move.
tracker_id int Database ID of the destination tracker.

Return: \gforge\plugins\tracker\models\api\TrackerItemBasic

The updated tracker item in its new tracker.

Name Type Description
id int Unique database identifier
statusId int Status for this tracker item (0 = closed, 1 = open). See TrackerItem constants for values.
priority int Numeric priority (1 - 5) for this item. See TrackerItem constants and the getStaticPriorityLabel method for more details.
openDate \DateTime Date/time when this item was last opened (created, re-opened), or the date/time when the task must start.
closeDate \DateTime Date/time when this item was last closed, or the date/time when the task must finish.
summary string Summary for this tracker item
details string Detailed description for this tracker item. Stored verbatim as either HTML or Markdown.
tracker mixed Tracker (list) to which this tracker item belongs. On input, can be an id value or an object with an id property. On output, the model is converted to a TrackerBasic structure.
waitingFor int For support purposes, identifies which party "owns" the item. See TrackerItem constants for details.
sprint \TrackerItemExtraField The sprint to which this TI belongs (if any). For this usage, the id, fieldId and fieldType values are always null
submittedBy \UserBasic User that submitter this tracker item
lastModifiedDate string Date for the last modification on this tracker item
lastModifiedBy \UserBasic User who did the last modification on this tracker item
sortOrder int Sort order for this tracker item. This field is for legacy compatibility, and is read-only.
parent int Parent tracker item
hasSubitems bool Indicates if this tracker item is a parent of other tracker items
subitemsCount int Number of children for this tracker item
lockStatus int Indicates if the TI is locked for edit
reactions mixed Assoc array of unixName => reaction. Can be empty/empty string. This field is not updated via API, use postReaction method instead.
storyPoints int A value from the available story points in the corresponding tracker
rel array A flexible set of related data
extraFields array The list of extra field names and values

postMulti

Update multiple tracker items at once.

Parameters (3)

Name Type Description
tis array Array of tracker item descriptor objects. Each element must include id (int) and optionally lastModifiedDate (string). All other fields supplied at the top level (summary, priority, extra field aliases, etc.) are applied uniformly to every item in the array.
tags string Comma-separated tags to apply to every item processed.
details string HTML body to apply to every item processed.

Return: \StdClass[]

One result object per submitted item, each with success (bool), id (int), and an optional message key.

postReaction

Create or save a reaction for the specified Tracker Item Message (follow-up).

Parameters (3)

Name Type Description
id int The tracker item ID. Provided in the route.
subId int The tracker item message (follow-up) ID. Provided in the route.
reaction string The reaction name. Allowed values: heart, thumbs-up, thumbs-down, question-sign. Pass an empty string to remove the authenticated user's existing reaction.

Return: \gforge\plugins\tracker\models\api\TrackerItemMessageBasic

The updated message.

Name Type Description
id int Unique database identifier
adddate string Date when this message was added
body string with the contents of the message. Stored verbatim as either HTML or Markdown.
user object User that submitter this tracker message;
reactions mixed Assoc array of unixName => reaction. Can be empty/empty string. This field is not updated via API, use postReaction method instead.

postRelated

Creates a relation from one item to another. Expected parameters in the Request object are:

  • id: Tracker Item which we want to add a relation
  • relatedId: Tracker Item to be related (this item will be blocking previous one)

Parameters (4)

Name Type Description
id string Tracker item ID (the parent/waiting-for item). Provided in the route, e.g. POST /api/trackeritem/:id/related/:relatedTrackerItemId.
relatedTrackerItemId string ID of the tracker item to add as a dependency. Provided in the route.
linkType string Dependency link type. Allowed values are defined by TrackerItemRelation::LINK_TYPE_* constants; default is finish-start.
lastModifiedDate string ISO-8601 timestamp of the last known modification date of the parent item. Used for optimistic concurrency checking.

Return: array

Array with keys location (string) and lastModifiedDate (string).

postTrackerItem

Create a new or update an existing Tracker Item. The following fields can be set by this method:

  • statusID - This value is overridden if an extra field of type STATUS is also submitted.
  • priority
  • openDate
  • closeDate
  • summary
  • details
  • tracker - Can be the Tracker ID or an object with an id property. Ignored for updates.
  • waitingFor
  • trackerSprint - Can be the Sprint Number, or an object with either an id or sprintProgression property.
  • submittedBy - Can be the user's ID, unixName, or an object with either an id or unixName property.
  • sortOrder - This is a legacy field, has no effect on display of tracker items.
  • parentId
  • assignees - This must be an array. Each element can be a user id, a unixName, or an object with either an id or unixName property.
  • extraFields - This must be a map. Each property name must be the ID or alias for the extra field, and the value(s) must be the id, alias, or a structure with either an id or alias property. A single extra field may have an array of values if it is a multi-select type.
ALL OTHER related entities are either read-only, or can be updated via separate sub-entity endpoints. See the other methods in this entity for information.

Parameters (12)

Name Type Description
id int Database identifier for the tracker item to update. Derived from the route, e.g. POST /api/trackeritem/:id. Zero or absent means create.
tracker int Tracker ID for new items. Can be a numeric ID or an object with an id property. Ignored for updates.
statusId int Open/closed status. Overridden when an extra field of type STATUS is also submitted.
summary string Short title for the tracker item.
details string HTML body / description of the tracker item.
priority int Priority level (1–5).
followup string Optional follow-up comment body to post alongside the TI save.
followupRefId string ID of an existing follow-up to update; zero means create.
tmpRefId string Temporary reference ID for correlating file uploads.
tags string Comma-separated list of tags to apply to the item.
assignees array Array of assignee descriptors. Each element can be a user id, unix name, or object with id or unixName.
extraFields array Map of extra field alias → value(s) for this item.

Return: \gforge\plugins\tracker\models\api\TrackerItemBasic

The saved tracker item.

Name Type Description
id int Unique database identifier
statusId int Status for this tracker item (0 = closed, 1 = open). See TrackerItem constants for values.
priority int Numeric priority (1 - 5) for this item. See TrackerItem constants and the getStaticPriorityLabel method for more details.
openDate \DateTime Date/time when this item was last opened (created, re-opened), or the date/time when the task must start.
closeDate \DateTime Date/time when this item was last closed, or the date/time when the task must finish.
summary string Summary for this tracker item
details string Detailed description for this tracker item. Stored verbatim as either HTML or Markdown.
tracker mixed Tracker (list) to which this tracker item belongs. On input, can be an id value or an object with an id property. On output, the model is converted to a TrackerBasic structure.
waitingFor int For support purposes, identifies which party "owns" the item. See TrackerItem constants for details.
sprint \TrackerItemExtraField The sprint to which this TI belongs (if any). For this usage, the id, fieldId and fieldType values are always null
submittedBy \UserBasic User that submitter this tracker item
lastModifiedDate string Date for the last modification on this tracker item
lastModifiedBy \UserBasic User who did the last modification on this tracker item
sortOrder int Sort order for this tracker item. This field is for legacy compatibility, and is read-only.
parent int Parent tracker item
hasSubitems bool Indicates if this tracker item is a parent of other tracker items
subitemsCount int Number of children for this tracker item
lockStatus int Indicates if the TI is locked for edit
reactions mixed Assoc array of unixName => reaction. Can be empty/empty string. This field is not updated via API, use postReaction method instead.
storyPoints int A value from the available story points in the corresponding tracker
rel array A flexible set of related data
extraFields array The list of extra field names and values

Example 1

Update an existing Tracker Item with ID 12345

POST /api/trackeritem/12345
{
 "id": int,
 "tracker": int,
 "statusId": int,
 "summary": string,
 "lastModifiedBy": int,
 "sortOrder": int,
 "parent": int,
 "fieldsData": {
    "field_alias1": ["item1", "item2", ..., "item_n"],
"field_alias1": "item"
  }
}

PUT

DELETE

deleteAssociation

Deletes an association from one item to another. Expected parameters in the Request object are:

  • id: Tracker Item which we want to delete a relation
  • relatedId: Tracker Item to be deletes as related

Parameters (2)

Name Type Description
id string Source tracker item ID. Provided in the route, e.g. DELETE /api/trackeritem/:id/association/:relatedTrackerItemId.
relatedTrackerItemId string ID of the associated tracker item to remove. Provided in the route.

Return: array

Array with location set to the API URL of the source TI.

deleteAttachment

Processes a tracker item attachment delete

Parameters (3)

Name Type Description
id string Tracker item ID. Provided in the route.
attachmentId string Filesystem record ID of the attachment to delete. Provided in the route.
lastModifiedDate string ISO-8601 timestamp for optimistic concurrency checking.

Return: array

Array with lastModifiedDate (string) of the updated tracker item, or a per-id error map if the deletion fails.

deleteDuplicate

Removes the duplicate relationship between two tracker items.

Parameters (2)

Name Type Description
tid string The tracker item ID that was marked as the duplicate.
duplicateOfTid string The tracker item ID that it was a duplicate of.

Return: void

deleteFollowup

Deletes a tracker item follow-up. Expected parameters in the Request object are:

  • id: Tracker item id that owns the followup
  • followupId: ID of the followup to delete.

Parameters (2)

Name Type Description
id string Tracker item ID. Provided in the route, e.g. DELETE /api/trackeritem/:id/followup/:followupId.
followupId string ID of the follow-up message to delete. Provided in the route.

Return: void

deleteRelated

Deletes a relation from one item to another. Expected parameters in the Request object are:

  • id: Tracker Item which we want to delete a relation
  • relatedId: Tracker Item to be deletes as related

Parameters (3)

Name Type Description
id string Tracker item ID (one end of the relation). Provided in the route, e.g. DELETE /api/trackeritem/:id/related/:relatedTrackerItemId.
relatedTrackerItemId string ID of the related tracker item to disconnect. Provided in the route.
lastModifiedDate string ISO-8601 timestamp for optimistic concurrency checking.

Return: array

Array with keys location (string) and lastModifiedDate (string).

deleteTrackeritem

Deletes one or multiple tracker items. Expects 'tracker_id[]' as a request parameter containing an array of ids.
This is a backgroundable method, if the number of items to delete is below the 'system.tiBgDeleteLimit' setting value the process is handled online. If the number is equal or higher to the limit the process is backgrounded and the jobId is returned.

Parameters (1)

Name Type Description
idList string Comma-separated list of tracker item IDs to delete.
Backgroundable
If method handles above a predefined number of items, the request is sent to a background process and the job Id is returned.
If the items are lower than the limit the request is processed online and the result array is returned instead.
See the examples for more details.

Return: mixed

Inline result array (map of id → status) when below the background limit, or {'jobId': int} when the deletion is backgrounded.

Example 1

Delete online a single tracker item:
  curl -u gforgeadmin:gforgeadmin \
    -X POST \
    --header "Content-Type: application/json" \
    --header "X-Requested-With: XMLHttpRequest" \
    --url http://api.mygforge.tld/api/trackeritem \
    --data '{"tracker_id[]": [1]}'

  {
    "16": {
      "status": 12,
      "statusText": "Success"
    }
  }

Example 2

Delete in background process multiple tracker items:
  curl -u gforgeadmin:gforgeadmin \
    -X POST \
    --header "Content-Type: application/json" \
    --header "X-Requested-With: XMLHttpRequest" \
    --url http://api.mygforge.tld/api/trackeritem \
    --data '{"tracker_id[]": [17,18]}'

  {
    "jobId": 4
  }
Monitor the background job process with the Poll service, using the jobId provided:
  curl -u gforgeadmin:gforgeadmin \
    -X GET \
    --header "X-Requested-With: XMLHttpRequest" \
    --url http://api.mygforge.tld/api/poll?bgjob%5B%5D=backgroundjob-4-1&rel=bgjob
When the background job process is completed the Poll service will return:

{
  "items": [
    {
      "type": "bgjob",
      "section": "backgroundjob",
      "refId": "4",
      "lastValue": 2,
      "items": [
        {
          "id": 4,
          "jobType": "100",
          "status": 3,
          "result": 12,
          "parameters": "[\"17\",\"18\"]",
          "cancelFlag": false,
          "statusText": "Job completed.",
          "createDate": "2015-03-05 09:44:44 -0300",
          "startDate": "2015-03-05 09:44:45 -0300",
          "finishDate": "2015-03-05 09:44:47 -0300",
          "successCount": 2,
          "failCount": 0,
          "responseText": "{\"17\":{\"status\":12,\"statusText\":\"Success\"},\"18\":{\"status\":12,\"statusText\":\"Success\"}}",
          "user": {
            "id": 101,
            "unixName": "gforgeadmin",
            "password": null,
            "firstname": "GForge Admin",
            "lastname": "User",
            "email": "root@localhost.localdomain",
            "timezone": "GMT",
            "status": 1,
            "externalId": null,
            "isGroup": "N",
            "ccode": "US",
            "language": "en   ",
            "theme": 1,
            "img_url": "/api/user/gforgeadmin/avatar",
            "html_url": "/user/gforgeadmin",
            "details_url": "/api/user/gforgeadmin/details",
            "isSiteAdmin": true,
            "api_url": "/api/user/gforgeadmin"
          }
        }
      ]
    }
  ]
}