Loading...
 
Skip to main content

History: Api Trackers Doc

Source of version: 22 (current)

Copy to clipboard
{DIV(class="content-section d-none" id="get-trackers")}
!!! Retrieve all trackers that the current user has permission to see

Retrieve all trackers that the current user has permission to see.

{TABS(name="doc-get-trackers" tabs="Request URL| cURL | PHP | JavaScript | Response" toggle="y" inside_pretty="n")}

{DIV()}
{CODE(caption="Request URL - trackers" colors="http" theme="default")}
https://example.com/api/trackers
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="cURL - trackers" colors="http" theme="default")}
curl --request GET \
     --url "https://example.com/api/trackers" \
     --header "accept: application/json" \
     --header "Authorization: Bearer <API_TOKEN>"
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="PHP - trackers" colors="php" theme="default")}
<?php

$url = 'https://example.com/api/trackers';

$headers = [
    'Accept: application/json',
    'Authorization: Bearer <API_TOKEN>'
];

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);

$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code === 200) {
    $data = json_decode($response, true);
    print_r($data);
} else {
    echo 'Error: HTTP status code ' . $http_code;
}

curl_close($ch);

?>
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Javascript - trackers" colors="javascript" theme="default")}
fetch('https://example.com/api/trackers', {
  method: 'GET',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <API_TOKEN>'
  }
})
.then(res => {
  if (!res.ok) throw new Error("HTTP " + res.status);
  return res.json();
})
.then(data => {
  console.log(data);
})
.catch(err => {
  console.log('Fetch error: ' + err.message);
});

{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Response - trackers" colors="json" theme="default")}
{
  "list": {
    "1": "quiz",
    "2": "minical",
    "3": "orders",
    "4": "Contacts"
  },
  "data": [
    {
      "trackerId": 1,
      "name": "quiz",
      "description": "",
      "descriptionIsParsed": "n",
      "created": 1747130522,
      "lastModif": 1758616579,
      "items": 4,
      "fieldsCount": 1,
      "system_tracker": false
    },
    {
      "trackerId": 2,
      "name": "minical",
      "description": "This aims to hold minical data",
      "descriptionIsParsed": "n",
      "created": 1751811300,
      "lastModif": 1751813241,
      "items": 2,
      "fieldsCount": 2,
      "system_tracker": false
    },
    {
      "trackerId": 3,
      "name": "orders",
      "description": "",
      "descriptionIsParsed": "n",
      "created": 1752248918,
      "lastModif": 1759332937,
      "items": 1002,
      "fieldsCount": 7,
      "system_tracker": false
    },
    {
      "trackerId": 4,
      "name": "Contacts",
      "description": "",
      "descriptionIsParsed": "n",
      "created": 1752252712,
      "lastModif": 1760905623,
      "items": 4,
      "fieldsCount": 11,
      "system_tracker": false
    }
  ],
  "count": 4
}
{CODE}
{DIV}

{TABS}

!!!! Parameters

No parameters.

{DIV}

{DIV(class="content-section d-none" id="create-trackers")}
!!! Create a new tracker

Create a new tracker with the provided configuration options.

{TABS(name="doc-create-trackers" tabs="Request URL| cURL | PHP | JavaScript | Response" toggle="y" inside_pretty="n")}

{DIV()}
{CODE(caption="Request URL - trackers" colors="http" theme="default")}
https://example.com/api/trackers
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="cURL - trackers" colors="http" theme="default")}
curl --request POST \
     --url "https://example.com/api/trackers" \
     --header "accept: application/json" \
     --header "Authorization: Bearer <API_TOKEN>" \
     --header "Content-Type: application/x-www-form-urlencoded" \
     --data-urlencode "name=TrackerTest" \
     --data-urlencode "description=TrackerTest Description" \
     --data-urlencode "descriptionIsParsed=0" \
     --data-urlencode "useComments=1" \
     --data-urlencode "showCreated=1" \
     --data-urlencode "showLastModif=1" \
     --data-urlencode "showStatus=1" \
     --data-urlencode "showPopup=1"
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="PHP - trackers" colors="php" theme="default")}
<?php

$url = 'https://example.com/api/trackers';

$data = [
    'name' => 'TrackerTest',
    'description' => 'TrackerTest Description',
    'descriptionIsParsed' => 0,
    'useComments' => 1,
    'showCreated' => 1,
    'showLastModif' => 1,
    'showStatus' => 1,
    'showPopup' => 1
];

$headers = [
    'Accept: application/json',
    'Authorization: Bearer <API_TOKEN>',
    'Content-Type: application/x-www-form-urlencoded'
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code === 200) {
    $data = json_decode($response, true);
    print_r($data);
} else {
    echo 'Error: HTTP status code ' . $http_code;
}

curl_close($ch);

?>
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Javascript - trackers" colors="javascript" theme="default")}
const formData = new URLSearchParams({
  name: 'TrackerTest',
  description: 'TrackerTest Description',
  descriptionIsParsed: '0',
  useComments: '1',
  showCreated: '1',
  showLastModif: '1',
  showStatus: '1',
  showPopup: '1'
});

fetch('https://example.com/api/trackers', {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <API_TOKEN>',
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: formData.toString()
})
.then(res => {
  if (!res.ok) throw new Error("HTTP " + res.status);
  return res.json();
})
.then(data => {
  console.log(data);
})
.catch(err => {
  console.log('Fetch error: ' + err.message);
});

{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Response - trackers" colors="json" theme="default")}
{
  "accordion_pos": 1,
  "title": "Edit TrackerTest",
  "trackerId": "16",
  "info": {
    "adminOnlyViewEditItem": "n",
    "allowChooseFieldsToDisplay": "n",
    "allowInlineEditing": "n",
    "allowOffline": "n",
    "altClosedStatus": "",
    "altOpenStatus": "",
    "altPendingStatus": "",
    "autoAssignCreatorGroup": "n",
    "autoAssignCreatorGroupDefault": "n",
    "autoAssignGroupItem": "n",
    "autoCopyGroup": "n",
    "autoCreateCategories": "n",
    "autoCreateGroup": "n",
    "autoCreateGroupInc": "",
    "defaultOrderDir": "string",
    "defaultOrderKey": "-1",
    "defaultStatus": "o",
    "doNotShowEmptyField": "n",
    "editItemPretty": "",
    "end": "0",
    "fieldPrefix": "",
    "formClasses": "",
    "groupCanSeeOwn": "n",
    "logo": "",
    "modItemStatus": "",
    "newItemStatus": "o",
    "notifyOn": "both",
    "oneUserItem": "n",
    "orderAttachments": "",
    "outboundEmail": "",
    "permName": "",
    "publishRSS": "n",
    "ratingOptions": "",
    "relationshipBehaviour": "",
    "saveAndComment": "n",
    "sectionFormat": "flat",
    "showAttachments": "n",
    "showComments": "y",
    "showCreated": "y",
    "showCreatedBy": "y",
    "showCreatedFormat": "%c",
    "showCreatedView": "y",
    "showLastComment": "n",
    "showLastModif": "y",
    "showLastModifBy": "y",
    "showLastModifFormat": "%c",
    "showLastModifView": "y",
    "showPopup": "1",
    "showRatings": "n",
    "showStatus": "y",
    "showStatusAdminOnly": "n",
    "simpleEmail": "n",
    "start": "0",
    "tabularSync": "",
    "tabularSyncLastImport": "0",
    "tabularSyncLastImportSkipUpdate": "n",
    "tabularSyncModifiedField": "0",
    "useAttachments": "n",
    "useComments": "y",
    "useFormClasses": "n",
    "useRatings": "n",
    "userCanSeeOwn": "n",
    "userCanTakeOwnership": "n",
    "viewItemPretty": "",
    "writerCanModify": "n",
    "writerCanRemove": "n",
    "writerGroupCanModify": "n",
    "writerGroupCanRemove": "n",
    "trackerId": 16,
    "name": "TrackerTest",
    "description": "TrackerTest Description",
    "descriptionIsParsed": "n",
    "created": 1761481261,
    "lastModif": 1761481261,
    "items": 0
  },
  "statusTypes": {
    "o": {
      "name": "open",
      "label": "Open",
      "perm": "tiki_p_view_trackers",
      "image": "img/icons/status_open.gif",
      "iconname": "status-open"
    },
    "p": {
      "name": "pending",
      "label": "Pending",
      "perm": "tiki_p_view_trackers_pending",
      "image": "img/icons/status_pending.gif",
      "iconname": "status-pending"
    },
    "c": {
      "name": "closed",
      "label": "Closed",
      "perm": "tiki_p_view_trackers_closed",
      "image": "img/icons/status_closed.gif",
      "iconname": "status-closed"
    }
  },
  "statusList": [
    "o"
  ],
  "sortFields": {
    "-1": "Last Modification",
    "-2": "Creation Date",
    "-3": "Item ID"
  },
  "attachmentAttributes": {
    "filename": {
      "label": "Filename",
      "selected": false
    },
    "created": {
      "label": "Creation date",
      "selected": false
    },
    "hits": {
      "label": "Views",
      "selected": false
    },
    "comment": {
      "label": "Comment",
      "selected": false
    },
    "filesize": {
      "label": "File size",
      "selected": false
    },
    "version": {
      "label": "Version",
      "selected": false
    },
    "filetype": {
      "label": "File type",
      "selected": false
    },
    "longdesc": {
      "label": "Long description",
      "selected": false
    },
    "user": {
      "label": "User",
      "selected": false
    }
  },
  "startDate": null,
  "startTime": null,
  "endDate": null,
  "endTime": null,
  "groupList": [
    "Admins",
    "Anonymous",
    "Registered",
    "sysAdmins",
    "Translators"
  ],
  "groupforAlert": false,
  "showeachuser": false,
  "sectionFormats": {
    "flat": "Flat",
    "tab": "Tabs",
    "config": "Configured"
  },
  "remoteTabulars": [],
  "relationshipBehaviourList": [
    "GENERIC_DIRECTIONAL",
    "GENERIC_NON_DIRECTIONAL",
    "GENERIC_ONE_TO_MANY"
  ],
  "displayTimezone": "Africa/Nairobi"
}
{CODE}
{DIV}

{TABS}

!!!! Parameters

* __name__ ''string'' ~~#fe0000:*~~: The name of the tracker
* __description__ ''string Optional'': The description of the tracker
* __descriptionIsParsed__ ''integer Optional'': Whether the description is parsed. Possible values are:
** ~~#9011ff:__0__~~ : Not parsed
** ~~#9011ff:__1__~~ : Parsed
* __fieldPrefix__ ''string Optional'': Short string prepended by default to all fields in the tracker.
* __permName__ ''string Optional'': The permanent name of the tracker
* __showStatus__ ''integer Optional'': Whether to show the status of the tracker. Possible values are:
** ~~#9011ff:__0__~~ : Do not show
** ~~#9011ff:__1__~~ : Show
* __showStatusAdminOnly__ ''integer Optional'': Whether to show the status only to the admin. Possible values are:
** ~~#9011ff:__0__~~ : Show the status to all users.
** ~~#9011ff:__1__~~ : Show the status only to the admin.
* __showCreated__ ''integer Optional'': Whether to show the created date when listing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the created date.
** ~~#9011ff:__1__~~ : Show the created date.
* __showCreatedView__ ''integer Optional'': Whether to show the created date when viewing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the created date.
** ~~#9011ff:__1__~~ : Show the created date.
* __showCreatedBy__ ''integer Optional'': Whether to show the creator when listing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the creator.
** ~~#9011ff:__1__~~ : Show the creator.
* __showCreatedFormat__ ''string Optional'': The format of the created date. For more info about Tiki date and time format please check: https://doc.tiki.org/Date-and-Time-Features
* __showLastModif__ ''integer Optional'': Whether to show the last modification date when listing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the last modification date.
** ~~#9011ff:__1__~~ : Show the last modification date.
* __showLastModifView__ ''integer Optional'': Whether to show the last modification date when viewing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the last modification date.
** ~~#9011ff:__1__~~ : Show the last modification date.
* __showLastModifBy__ ''integer Optional'': Whether to show the last modifier when listing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the last modifier.
** ~~#9011ff:__1__~~ : Show the last modifier.
* __showLastModifFormat__ ''string Optional'': The format of the last modification date. For more info about Tiki date and time format please check: https://doc.tiki.org/Date-and-Time-Features
* __defaultOrderKey__ ''integer Optional'': The default sort order when listing items. Possible values are:
** ~~#9011ff:__-1__~~ : Last Modification
** ~~#9011ff:__-2__~~ : Creation Date
** ~~#9011ff:__-3__~~ : Item ID
* __defaultOrderDir__ ''string Optional'': The default sort direction when listing items. Possible values are:
** ~~#9011ff:__asc__~~ : Ascending
** ~~#9011ff:__desc__~~ : Descending
* __doNotShowEmptyField__ ''integer Optional'': Whether to show empty fields when listing items. Possible values are:
** ~~#9011ff:__0__~~ : Show empty fields.
** ~~#9011ff:__1__~~ : Do not show empty fields.
* __showPopup__ ''integer Optional'': Whether to show a popup with item details when hovering over an item link. Possible values are:
** ~~#9011ff:__0__~~ : Do not show popup.
** ~~#9011ff:__1__~~ : Show popup.
* __defaultStatus__ ''String[] Optional'': The default status of the tracker. Possible values are:
** ~~#9011ff:__o__~~ : open
** ~~#9011ff:__p__~~ : pending
** ~~#9011ff:__c__~~ : closed
* __newItemStatus__ ''string[] Optional'': The status assigned to new items. Possible values are:
** ~~#9011ff:__o__~~ : open
** ~~#9011ff:__p__~~ : pending
** ~~#9011ff:__c__~~ : closed
* __altOpenStatus__ ''string Optional'': The alternative open status of the tracker.
* __altPendingStatus__ ''string Optional'': The alternative pending status of the tracker.
* __altClosedStatus__ ''string Optional'': The alternative closed status of the tracker.
* __modItemStatus__ ''string Optional'': The status of a modified item. Possible values are:
** ~~#9011ff:__o__~~ : open
** ~~#9011ff:__p__~~ : pending
** ~~#9011ff:__c__~~ : closed
* __outboundEmail__ ''string Optional'': The outbound email address used for notifications. You can add several email addresses by separating them with commas.
* __simpleEmail__ ''integer Optional'': Whether to send simple email notifications. Possible values are:
** ~~#9011ff:__0__~~ : Do not send simple email notifications.
** ~~#9011ff:__1__~~ : Send simple email notifications.
* __userCanSeeOwn__ ''integer Optional'': Whether a user can see their own items. Possible values are:
** ~~#9011ff:__0__~~ : Users cannot see their own items.
** ~~#9011ff:__1__~~ : Users can see their own items.
* __groupCanSeeOwn__ ''integer Optional'': Whether a group can see their own items. Possible values are:
** ~~#9011ff:__0__~~ : Groups cannot see their own items.
** ~~#9011ff:__1__~~ : Groups can see their own items.
* __writerCanModify__ ''integer Optional'': Whether the writer can modify their own items. Possible values are:
** ~~#9011ff:__0__~~ : Writers cannot modify their own items.
** ~~#9011ff:__1__~~ : Writers can modify their own items.
* __writerCanRemove__ ''integer Optional'': Whether the writer can remove their own items. Possible values are:
** ~~#9011ff:__0__~~ : Writers cannot remove their own items.
** ~~#9011ff:__1__~~ : Writers can remove their own items.
* __userCanTakeOwnership__ ''integer Optional'': Whether a user can take ownership of an item created by anonymous. Possible values are:
** ~~#9011ff:__0__~~ : A user cannot take ownership of an item created by anonymous.
** ~~#9011ff:__1__~~ : Users can take ownership of an item created by anonymous.
* __oneUserItem__ ''integer Optional'': Whether a user can only have one item. Possible values are:
** ~~#9011ff:__0__~~ : A user can have multiple items.
** ~~#9011ff:__1__~~ : A user can only have one item.
* __writerGroupCanModify__ ''integer Optional'': Whether a writer group can modify items. Possible values are:
** ~~#9011ff:__0__~~ : A writer group cannot modify items.
** ~~#9011ff:__1__~~ : A writer group can modify items.
* __writerGroupCanRemove__ ''integer Optional'': Whether a writer group can remove items. Possible values are:
** ~~#9011ff:__0__~~ : A writer group cannot remove items.
** ~~#9011ff:__1__~~ : A writer group can remove items.
* __allowOffline__ ''integer Optional'': Whether to allow offline usage. Possible values are:
** ~~#9011ff:__0__~~ : Do not allow offline usage.
** ~~#9011ff:__1__~~ : Allow offline usage.
* __useRatings__ ''integer Optional'': Whether to enable ratings. Possible values are:
** ~~#9011ff:__0__~~ : Do not enable ratings.
** ~~#9011ff:__1__~~ : Enable ratings.
* __showRatings__ ''integer Optional'': Whether to show ratings. Possible values are:
** ~~#9011ff:__0__~~ : Do not show ratings.
** ~~#9011ff:__1__~~ : Show ratings.
* __ratingOptions__ ''string Optional'': The rating options. Possible values are:
** ~~#9011ff:__0__~~ : 0 score
** ~~#9011ff:__1__~~ : 1 score
** ~~#9011ff:__2__~~ : 2 score
** ~~#9011ff:__3__~~ : 3 score
** ~~#9011ff:__4__~~ : 4 score
** ~~#9011ff:__5__~~ : 5 score
* __useComments__ ''integer Optional'': Whether to allow comments. Possible values are:
** ~~#9011ff:__0__~~ : Do not allow comments.
** ~~#9011ff:__1__~~ : Allow comments.
* __showComments__ ''integer Optional'': Whether to show comments. Possible values are:
** ~~#9011ff:__0__~~ : Do not show comments.
** ~~#9011ff:__1__~~ : Show comments.
* __showLastComment__ ''integer Optional'': Whether to show the last comment. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the last comment.
** ~~#9011ff:__1__~~ : Show the last comment.
* __saveAndComment__ ''integer Optional'': Whether to save and comment. Possible values are:
** ~~#9011ff:__0__~~ : Do not save and comment.
** ~~#9011ff:__1__~~ : Save and comment.
* __useAttachments__ ''integer Optional'': Whether to allow attachments. Possible values are:
** ~~#9011ff:__0__~~ : Do not allow attachments.
** ~~#9011ff:__1__~~ : Allow attachments.
* __showAttachments__ ''integer Optional'': Whether to show attachments. Possible values are:
** ~~#9011ff:__0__~~ : Do not show attachments.
** ~~#9011ff:__1__~~ : Show attachments.
* __orderAttachments__ ''string Optional'': The order of attachments. Possible values are:
** ~~#9011ff:__filename__~~ : Filename
** ~~#9011ff:__created__~~ : Creation date
** ~~#9011ff:__filesize__~~ : File size
** ~~#9011ff:__hits__~~ : Hits
** ~~#9011ff:__desc__~~ : Description
* __start__ ''integer Optional'': The start date of the tracker
* __end__ ''integer Optional'': The end date of the tracker
* __autoCreateGroup__ ''integer Optional'': Whether to automatically create group. Possible values are:
** ~~#9011ff:__0__~~ : Do not automatically create group.
** ~~#9011ff:__1__~~ : Automatically create group.
* __autoCreateGroupInc__ ''string Optional'': The groups to include when automatically creating a group.
* __autoAssignCreatorGroup__ ''integer Optional'': Whether to automatically assign the creator to the default group. Possible values are:
** ~~#9011ff:__0__~~ : Do not automatically assign the creator to the default group.
** ~~#9011ff:__1__~~ : Automatically assign the creator to the default group.
* __autoAssignGroupItem__ ''integer Optional'': Whether to automatically assign a group to an item. Possible values are:
** ~~#9011ff:__0__~~ : Do not automatically assign a group to an item.
** ~~#9011ff:__1__~~ : Automatically assign a group to an item.
* __autoCopyGroup__ ''integer Optional'': Whether to automatically copy the group. Possible values are:
** ~~#9011ff:__0__~~ : Do not automatically copy the group.
** ~~#9011ff:__1__~~ : Automatically copy the group.
* __viewItemPretty__ ''string Optional'': The view item pretty
* __editItemPretty__ ''string Optional'': The edit item pretty
* __autoCreateCategories__ ''integer Optional'': Whether to automatically create categories. Possible values are:
** ~~#9011ff:__0__~~ : Do not automatically create categories.
** ~~#9011ff:__1__~~ : Automatically create categories.
* __publishRSS__ ''integer Optional'': Whether to publish RSS. Possible values are:
** ~~#9011ff:__0__~~ : Do not publish RSS.
** ~~#9011ff:__1__~~ : Publish RSS.
* __sectionFormat__ ''string Optional'': The section format. Possible values are:
** ~~#9011ff:__flat__~~ : Flat
** ~~#9011ff:__tab__~~ : Tabs
* __adminOnlyViewEditItem__ ''integer Optional'': Whether only admin can view/edit item. Possible values are:
** ~~#9011ff:__0__~~ : All users can view/edit item.
** ~~#9011ff:__1__~~ : Only admin can view/edit item.
* __logo__ ''string Optional'': The logo of the tracker
* __useFormClasses__ ''integer Optional'': Whether to use form classes. Possible values are:
** ~~#9011ff:__0__~~ : Do not use form classes.
** ~~#9011ff:__1__~~ : Use form classes.
* __formClasses__ ''string Optional'': Sets classes for form to be used in Tracker Plugin (e.g., col-md-9).
* __tabularSync__ ''string Optional'': Comma-separated list of import-export formats to synchronize the tracker data with.
* __tabularSyncModifiedField__ ''integer Optional'': Choose one of the tracker fields if remote items update its value every time a change happens. This will ensure only updated items get synchronized when importing from remote source.
* __tabularSyncLastImport__ ''integer Optional'': This tracks the last date/time when this tracker was synchronized with remote source. Subsequent import-export imports will only fetch content newer than this date. Reset to something in the past if you want to re-import.
* __tabularSyncLastImportSkipUpdate__ ''string Optional'': By default, last import time gets reset every time an import happens. Check this option if you want the last import time to be static and kept what is entered above. Possible values:
** ~~#9011ff:__y__~~ : skip resetting the last import time
** ~~#9011ff:__n__~~ : don't skip resetting the last import time

{DIV}

{DIV(class="content-section d-none" id="create-trackers-field")}
!!! Create a new field within the specified tracker.

Create a new field within the specified tracker.

{TABS(name="doc-create-trackers-field" tabs="Request URL| cURL | PHP | JavaScript | Response" toggle="y" inside_pretty="n")}

{DIV()}
{CODE(caption="Request URL - trackers" colors="http" theme="default")}
https://example.com/api/trackers/{trackerId}/fields
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="cURL - trackers" colors="http" theme="default")}
curl --request POST \
     --url "https://example.com/api/trackers/16/fields" \
     --header "accept: application/json" \
     --header "Authorization: Bearer <API_TOKEN>" \
     --header "Content-Type: application/x-www-form-urlencoded" \
     --data-urlencode "name=Title" \
     --data-urlencode "permName=trackertestTitle" \
     --data-urlencode "description=Title Description" \
     --data-urlencode "description_parse=0" \
     --data-urlencode "type=t" \
     --data-urlencode "adminOnly=false"
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="PHP - trackers" colors="php" theme="default")}
<?php

$url = 'https://example.com/api/trackers/16/fields';

$data = [
    'name' => 'Title',
    'permName' => 'trackertestTitle',
    'description' => 'Title Description',
    'description_parse' => 0,
    'type' => 't',
    'adminOnly' => 'false'
];

$headers = [
    'Accept: application/json',
    'Authorization: Bearer <API_TOKEN>',
    'Content-Type: application/x-www-form-urlencoded'
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

$response = curl_exec($ch);

$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code === 200) {
    $data = json_decode($response, true);
    print_r($data);
} else {
    echo 'Error: HTTP status code ' . $http_code;
}

curl_close($ch);

?>
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Javascript - trackers" colors="javascript" theme="default")}
const formData = new URLSearchParams({
  name: 'Title',
  permName: 'trackertestTitle',
  description: 'Title Description',
  description_parse: '0',
  type: 't',
  adminOnly: 'false'
});

fetch('https://example.com/api/trackers/16/fields', {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <API_TOKEN>',
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: formData.toString()
})
.then(res => {
  if (!res.ok) throw new Error("HTTP " + res.status);
  return res.json();
})
.then(data => {
  console.log(data);
})
.catch(err => {
  console.log('Fetch error: ' + err.message);
});

{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Response - trackers" colors="json" theme="default")}
{
  "title": "Add Field",
  "trackerId": 16,
  "fieldId": 99,
  "name": "Title",
  "permName": "trackertestTitle",
  "type": "t",
  "types": {},
  "description": "Title Description",
  "descriptionIsParsed": 0,
  "modal": null,
  "fieldPrefix": ""
}
{CODE}
{DIV}

{TABS}

!!!!Parameters

* __trackerId__ ''integer'' ~~#fe0000:*~~: The ID of the tracker where the field will be created.

!!!! Request body

* __name__ ''string'' ~~#fe0000:*~~: The name of the field
* __permName__ ''string'' ~~#fe0000:*~~: The permanent name of the field
* __description__ ''string Optional'': The description of the field
* __description_parse__ ''integer Optional'': Whether to parse the description. Possible values are:
** ~~#9011ff:__0__~~ : Do not parse the description
** ~~#9011ff:__1__~~ : Parse the description
* __type__ ''string'' ~~#fe0000:*~~: The type of the field. Possible values are:
** ~~#9011ff:__articles__~~ : Articles
** ~~#9011ff:__q__~~ : Auto-Increment
** ~~#9011ff:__e__~~ : Categorize tracker item
** ~~#9011ff:__c__~~ : Checkbox
** ~~#9011ff:__C__~~ : Computed
** ~~#9011ff:__y__~~ : Country Selector
** ~~#9011ff:__b__~~ : Currency
** ~~#9011ff:__f__~~ : Date and Time
** ~~#9011ff:__j__~~ : Date and Time (Date Picker)
** ~~#9011ff:__d__~~ : Dropdown
** ~~#9011ff:__D__~~ : Dropdown selector with "Other" field
** ~~#9011ff:__DUR__~~ : Duration
** ~~#9011ff:__w__~~ : Dynamic Items List
** ~~#9011ff:__m__~~ : Email
** ~~#9011ff:__EF__~~ : Email Folder
** ~~#9011ff:__FG__~~ : Files
** ~~#9011ff:__g__~~ : Group Selector
** ~~#9011ff:__h__~~ : Heading
** ~~#9011ff:__icon__~~ : Icon
** ~~#9011ff:__r__~~ : Item Link
** ~~#9011ff:__l__~~ : Items List
** ~~#9011ff:__kaltura__~~ : Kaltura Video
** ~~#9011ff:__LANG__~~ : Language
** ~~#9011ff:__G__~~ : Location
** ~~#9011ff:__M__~~ : Multiselect
** ~~#9011ff:__n__~~ : Numeric
** ~~#9011ff:__k__~~ : Page Selector
** ~~#9011ff:__R__~~ : Radio Buttons
** ~~#9011ff:__STARS__~~ : Rating
** ~~#9011ff:__REL__~~ : Relations
** ~~#9011ff:__S__~~ : Static Text
** ~~#9011ff:__F__~~ : Tags
** ~~#9011ff:__a__~~ : Text Area
** ~~#9011ff:__t__~~ : Text Field
** ~~#9011ff:__L__~~ : URL
** ~~#9011ff:__u__~~ : User Selector
** ~~#9011ff:__wiki__~~ : Wiki Page
* __adminOnly__ ''boolean Optional'' : Whether the field is only visible to administrators. Possible values are:
** ~~#9011ff:__true__~~ : The field is only visible to administrators
** ~~#9011ff:__false__~~ : The field is visible to all users

{DIV}


{DIV(class="content-section d-none" id="update-trackers")}
!!! Update a tracker.

Update an existing tracker with the provided configuration options.

{TABS(name="doc-update-trackers" tabs="Request URL| cURL | PHP | JavaScript | Response" toggle="y" inside_pretty="n")}

{DIV()}
{CODE(caption="Request URL - trackers" colors="http" theme="default")}
https://example.com/api/trackers/{trackerId}
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="cURL - trackers" colors="http" theme="default")}
curl --request POST \
     --url "https://example.com/api/trackers/16" \
     --header "accept: application/json" \
     --header "Authorization: Bearer <API_TOKEN>" \
     --header "Content-Type: application/x-www-form-urlencoded" \
     --data-urlencode "name=TrackerTestUpdated" \
     --data-urlencode "description=TrackerTestUpdated Description"
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="PHP - trackers" colors="php" theme="default")}
<?php

$url = 'https://example.com/api/trackers/16';

$data = [
    'name' => 'TrackerTestUpdated',
    'description' => 'TrackerTestUpdated Description'
];

$headers = [
    'Accept: application/json',
    'Authorization: Bearer <API_TOKEN>',
    'Content-Type: application/x-www-form-urlencoded'
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code === 200) {
    $data = json_decode($response, true);
    print_r($data);
} else {
    echo 'Error: HTTP status code ' . $http_code;
}

curl_close($ch);

?>
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Javascript - trackers" colors="javascript" theme="default")}
const formData = new URLSearchParams({
  name: 'TrackerTestUpdated',
  description: 'TrackerTestUpdated Description'
});

fetch('https://example.com/api/trackers/16', {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <API_TOKEN>',
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: formData.toString()
})
.then(res => {
  if (!res.ok) throw new Error("HTTP " + res.status);
  return res.json();
})
.then(data => {
  console.log(data);
})
.catch(err => {
  console.log('Fetch error: ' + err.message);
});

{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Response - trackers" colors="json" theme="default")}
{
  "accordion_pos": 1,
  "title": "Edit TrackerTestUpdated",
  "trackerId": 16,
  "info": {
    "adminOnlyViewEditItem": "n",
    "allowChooseFieldsToDisplay": "n",
    "allowInlineEditing": "n",
    "allowOffline": "n",
    "altClosedStatus": "",
    "altOpenStatus": "",
    "altPendingStatus": "",
    "autoAssignCreatorGroup": "n",
    "autoAssignCreatorGroupDefault": "n",
    "autoAssignGroupItem": "n",
    "autoCopyGroup": "n",
    "autoCreateCategories": "n",
    "autoCreateGroup": "n",
    "autoCreateGroupInc": "",
    "defaultOrderDir": "asc",
    "defaultOrderKey": "-1",
    "defaultStatus": "",
    "doNotShowEmptyField": "n",
    "editItemPretty": "",
    "end": "0",
    "fieldPrefix": "",
    "formClasses": "",
    "groupCanSeeOwn": "n",
    "logo": "",
    "modItemStatus": "",
    "newItemStatus": "o",
    "notifyOn": "both",
    "oneUserItem": "n",
    "orderAttachments": "",
    "outboundEmail": "",
    "permName": "",
    "publishRSS": "n",
    "ratingOptions": "",
    "relationshipBehaviour": "",
    "saveAndComment": "n",
    "sectionFormat": "flat",
    "showAttachments": "n",
    "showComments": "n",
    "showCreated": "n",
    "showCreatedBy": "n",
    "showCreatedFormat": "",
    "showCreatedView": "n",
    "showLastComment": "n",
    "showLastModif": "n",
    "showLastModifBy": "n",
    "showLastModifFormat": "",
    "showLastModifView": "n",
    "showPopup": "",
    "showRatings": "n",
    "showStatus": "n",
    "showStatusAdminOnly": "n",
    "simpleEmail": "n",
    "start": "0",
    "tabularSync": "",
    "tabularSyncLastImport": "0",
    "tabularSyncLastImportSkipUpdate": "n",
    "tabularSyncModifiedField": "0",
    "useAttachments": "n",
    "useComments": "n",
    "useFormClasses": "n",
    "useRatings": "n",
    "userCanSeeOwn": "n",
    "userCanTakeOwnership": "n",
    "viewItemPretty": "",
    "writerCanModify": "n",
    "writerCanRemove": "n",
    "writerGroupCanModify": "n",
    "writerGroupCanRemove": "n",
    "trackerId": 16,
    "name": "TrackerTestUpdated",
    "description": "TrackerTestUpdated Description ",
    "descriptionIsParsed": "n",
    "created": 1761481261,
    "lastModif": 1761490898,
    "items": 0
  },
  "statusTypes": {
    "o": {
      "name": "open",
      "label": "Open",
      "perm": "tiki_p_view_trackers",
      "image": "img/icons/status_open.gif",
      "iconname": "status-open"
    },
    "p": {
      "name": "pending",
      "label": "Pending",
      "perm": "tiki_p_view_trackers_pending",
      "image": "img/icons/status_pending.gif",
      "iconname": "status-pending"
    },
    "c": {
      "name": "closed",
      "label": "Closed",
      "perm": "tiki_p_view_trackers_closed",
      "image": "img/icons/status_closed.gif",
      "iconname": "status-closed"
    }
  },
  "statusList": [],
  "sortFields": {
    "99": "Title",
    "-1": "Last Modification",
    "-2": "Creation Date",
    "-3": "Item ID"
  },
  "attachmentAttributes": {
    "filename": {
      "label": "Filename",
      "selected": false
    },
    "created": {
      "label": "Creation date",
      "selected": false
    },
    "hits": {
      "label": "Views",
      "selected": false
    },
    "comment": {
      "label": "Comment",
      "selected": false
    },
    "filesize": {
      "label": "File size",
      "selected": false
    },
    "version": {
      "label": "Version",
      "selected": false
    },
    "filetype": {
      "label": "File type",
      "selected": false
    },
    "longdesc": {
      "label": "Long description",
      "selected": false
    },
    "user": {
      "label": "User",
      "selected": false
    }
  },
  "startDate": null,
  "startTime": null,
  "endDate": null,
  "endTime": null,
  "groupList": [
    "Admins",
    "Anonymous",
    "Registered",
    "sysAdmins",
    "Translators"
  ],
  "groupforAlert": false,
  "showeachuser": false,
  "sectionFormats": {
    "flat": "Flat",
    "tab": "Tabs",
    "config": "Configured"
  },
  "remoteTabulars": [],
  "relationshipBehaviourList": [
    "GENERIC_DIRECTIONAL",
    "GENERIC_NON_DIRECTIONAL",
    "GENERIC_ONE_TO_MANY"
  ],
  "displayTimezone": "Africa/Nairobi"
}
{CODE}
{DIV}

{TABS}

!!!! Parameters

* __trackerId__ ''integer'' ~~#fe0000:*~~: The ID of the tracker to be updated.

!!!! Request body

* __name__ ''string'' ~~#fe0000:*~~: The name of the tracker
* __description__ ''string Optional'': The description of the tracker
* __descriptionIsParsed__ ''integer Optional'': Whether the description is parsed. Possible values are:
** ~~#9011ff:__0__~~ : Not parsed
** ~~#9011ff:__1__~~ : Parsed
* __fieldPrefix__ ''string Optional'': Short string prepended by default to all fields in the tracker.
* __permName__ ''string Optional'': The permanent name of the tracker
* __showStatus__ ''integer Optional'': Whether to show the status of the tracker. Possible values are:
** ~~#9011ff:__0__~~ : Do not show
** ~~#9011ff:__1__~~ : Show
* __showStatusAdminOnly__ ''integer Optional'': Whether to show the status only to the admin. Possible values are:
** ~~#9011ff:__0__~~ : Show the status to all users.
** ~~#9011ff:__1__~~ : Show the status only to the admin.
* __showCreated__ ''integer Optional'': Whether to show the created date when listing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the created date.
** ~~#9011ff:__1__~~ : Show the created date.
* __showCreatedView__ ''integer Optional'': Whether to show the created date when viewing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the created date.
** ~~#9011ff:__1__~~ : Show the created date.
* __showCreatedBy__ ''integer Optional'': Whether to show the creator when listing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the creator.
** ~~#9011ff:__1__~~ : Show the creator.
* __showCreatedFormat__ ''string Optional'': The format of the created date. For more info about Tiki date and time format please check: https://doc.tiki.org/Date-and-Time-Features
* __showLastModif__ ''integer Optional'': Whether to show the last modification date when listing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the last modification date.
** ~~#9011ff:__1__~~ : Show the last modification date.
* __showLastModifView__ ''integer Optional'': Whether to show the last modification date when viewing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the last modification date.
** ~~#9011ff:__1__~~ : Show the last modification date.
* __showLastModifBy__ ''integer Optional'': Whether to show the last modifier when listing items. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the last modifier.
** ~~#9011ff:__1__~~ : Show the last modifier.
* __showLastModifFormat__ ''string Optional'': The format of the last modification date. For more info about Tiki date and time format please check: https://doc.tiki.org/Date-and-Time-Features
* __defaultOrderKey__ ''integer Optional'': The default sort order when listing items. Possible values are:
** ~~#9011ff:__-1__~~ : Last Modification
** ~~#9011ff:__-2__~~ : Creation Date
** ~~#9011ff:__-3__~~ : Item ID
* __defaultOrderDir__ ''string Optional'': The default sort direction when listing items. Possible values are:
** ~~#9011ff:__asc__~~ : Ascending
** ~~#9011ff:__desc__~~ : Descending
* __doNotShowEmptyField__ ''integer Optional'': Whether to show empty fields when listing items. Possible values are:
** ~~#9011ff:__0__~~ : Show empty fields.
** ~~#9011ff:__1__~~ : Do not show empty fields.
* __showPopup__ ''integer Optional'': Whether to show a popup with item details when hovering over an item link. Possible values are:
** ~~#9011ff:__0__~~ : Do not show popup.
** ~~#9011ff:__1__~~ : Show popup.
* __defaultStatus__ ''String[] Optional'': The default status of the tracker. Possible values are:
** ~~#9011ff:__o__~~ : open
** ~~#9011ff:__p__~~ : pending
** ~~#9011ff:__c__~~ : closed
* __newItemStatus__ ''string[] Optional'': The status assigned to new items. Possible values are:
** ~~#9011ff:__o__~~ : open
** ~~#9011ff:__p__~~ : pending
** ~~#9011ff:__c__~~ : closed
* __altOpenStatus__ ''string Optional'': The alternative open status of the tracker.
* __altPendingStatus__ ''string Optional'': The alternative pending status of the tracker.
* __altClosedStatus__ ''string Optional'': The alternative closed status of the tracker.
* __modItemStatus__ ''string Optional'': The status of a modified item. Possible values are:
** ~~#9011ff:__o__~~ : open
** ~~#9011ff:__p__~~ : pending
** ~~#9011ff:__c__~~ : closed
* __outboundEmail__ ''string Optional'': The outbound email address used for notifications. You can add several email addresses by separating them with commas.
* __simpleEmail__ ''integer Optional'': Whether to send simple email notifications. Possible values are:
** ~~#9011ff:__0__~~ : Do not send simple email notifications.
** ~~#9011ff:__1__~~ : Send simple email notifications.
* __userCanSeeOwn__ ''integer Optional'': Whether a user can see their own items. Possible values are:
** ~~#9011ff:__0__~~ : Users cannot see their own items.
** ~~#9011ff:__1__~~ : Users can see their own items.
* __groupCanSeeOwn__ ''integer Optional'': Whether a group can see their own items. Possible values are:
** ~~#9011ff:__0__~~ : Groups cannot see their own items.
** ~~#9011ff:__1__~~ : Groups can see their own items.
* __writerCanModify__ ''integer Optional'': Whether the writer can modify their own items. Possible values are:
** ~~#9011ff:__0__~~ : Writers cannot modify their own items.
** ~~#9011ff:__1__~~ : Writers can modify their own items.
* __writerCanRemove__ ''integer Optional'': Whether the writer can remove their own items. Possible values are:
** ~~#9011ff:__0__~~ : Writers cannot remove their own items.
** ~~#9011ff:__1__~~ : Writers can remove their own items.
* __userCanTakeOwnership__ ''integer Optional'': Whether a user can take ownership of an item created by anonymous. Possible values are:
** ~~#9011ff:__0__~~ : A user cannot take ownership of an item created by anonymous.
** ~~#9011ff:__1__~~ : Users can take ownership of an item created by anonymous.
* __oneUserItem__ ''integer Optional'': Whether a user can only have one item. Possible values are:
** ~~#9011ff:__0__~~ : A user can have multiple items.
** ~~#9011ff:__1__~~ : A user can only have one item.
* __writerGroupCanModify__ ''integer Optional'': Whether a writer group can modify items. Possible values are:
** ~~#9011ff:__0__~~ : A writer group cannot modify items.
** ~~#9011ff:__1__~~ : A writer group can modify items.
* __writerGroupCanRemove__ ''integer Optional'': Whether a writer group can remove items. Possible values are:
** ~~#9011ff:__0__~~ : A writer group cannot remove items.
** ~~#9011ff:__1__~~ : A writer group can remove items.
* __allowOffline__ ''integer Optional'': Whether to allow offline usage. Possible values are:
** ~~#9011ff:__0__~~ : Do not allow offline usage.
** ~~#9011ff:__1__~~ : Allow offline usage.
* __useRatings__ ''integer Optional'': Whether to enable ratings. Possible values are:
** ~~#9011ff:__0__~~ : Do not enable ratings.
** ~~#9011ff:__1__~~ : Enable ratings.
* __showRatings__ ''integer Optional'': Whether to show ratings. Possible values are:
** ~~#9011ff:__0__~~ : Do not show ratings.
** ~~#9011ff:__1__~~ : Show ratings.
* __ratingOptions__ ''string Optional'': The rating options. Possible values are:
** ~~#9011ff:__0__~~ : 0 score
** ~~#9011ff:__1__~~ : 1 score
** ~~#9011ff:__2__~~ : 2 score
** ~~#9011ff:__3__~~ : 3 score
** ~~#9011ff:__4__~~ : 4 score
** ~~#9011ff:__5__~~ : 5 score
* __useComments__ ''integer Optional'': Whether to allow comments. Possible values are:
** ~~#9011ff:__0__~~ : Do not allow comments.
** ~~#9011ff:__1__~~ : Allow comments.
* __showComments__ ''integer Optional'': Whether to show comments. Possible values are:
** ~~#9011ff:__0__~~ : Do not show comments.
** ~~#9011ff:__1__~~ : Show comments.
* __showLastComment__ ''integer Optional'': Whether to show the last comment. Possible values are:
** ~~#9011ff:__0__~~ : Do not show the last comment.
** ~~#9011ff:__1__~~ : Show the last comment.
* __saveAndComment__ ''integer Optional'': Whether to save and comment. Possible values are:
** ~~#9011ff:__0__~~ : Do not save and comment.
** ~~#9011ff:__1__~~ : Save and comment.
* __useAttachments__ ''integer Optional'': Whether to allow attachments. Possible values are:
** ~~#9011ff:__0__~~ : Do not allow attachments.
** ~~#9011ff:__1__~~ : Allow attachments.
* __showAttachments__ ''integer Optional'': Whether to show attachments. Possible values are:
** ~~#9011ff:__0__~~ : Do not show attachments.
** ~~#9011ff:__1__~~ : Show attachments.
* __orderAttachments__ ''string Optional'': The order of attachments. Possible values are:
** ~~#9011ff:__filename__~~ : Filename
** ~~#9011ff:__created__~~ : Creation date
** ~~#9011ff:__filesize__~~ : File size
** ~~#9011ff:__hits__~~ : Hits
** ~~#9011ff:__desc__~~ : Description
* __start__ ''integer Optional'': The start date of the tracker
* __end__ ''integer Optional'': The end date of the tracker
* __autoCreateGroup__ ''integer Optional'': Whether to automatically create group. Possible values are:
** ~~#9011ff:__0__~~ : Do not automatically create group.
** ~~#9011ff:__1__~~ : Automatically create group.
* __autoCreateGroupInc__ ''string Optional'': The groups to include when automatically creating a group.
* __autoAssignCreatorGroup__ ''integer Optional'': Whether to automatically assign the creator to the default group. Possible values are:
** ~~#9011ff:__0__~~ : Do not automatically assign the creator to the default group.
** ~~#9011ff:__1__~~ : Automatically assign the creator to the default group.
* __autoAssignGroupItem__ ''integer Optional'': Whether to automatically assign a group to an item. Possible values are:
** ~~#9011ff:__0__~~ : Do not automatically assign a group to an item.
** ~~#9011ff:__1__~~ : Automatically assign a group to an item.
* __autoCopyGroup__ ''integer Optional'': Whether to automatically copy the group. Possible values are:
** ~~#9011ff:__0__~~ : Do not automatically copy the group.
** ~~#9011ff:__1__~~ : Automatically copy the group.
* __viewItemPretty__ ''string Optional'': The view item pretty
* __editItemPretty__ ''string Optional'': The edit item pretty
* __autoCreateCategories__ ''integer Optional'': Whether to automatically create categories. Possible values are:
** ~~#9011ff:__0__~~ : Do not automatically create categories.
** ~~#9011ff:__1__~~ : Automatically create categories.
* __publishRSS__ ''integer Optional'': Whether to publish RSS. Possible values are:
** ~~#9011ff:__0__~~ : Do not publish RSS.
** ~~#9011ff:__1__~~ : Publish RSS.
* __sectionFormat__ ''string Optional'': The section format. Possible values are:
** ~~#9011ff:__flat__~~ : Flat
** ~~#9011ff:__tab__~~ : Tabs
* __adminOnlyViewEditItem__ ''integer Optional'': Whether only admin can view/edit item. Possible values are:
** ~~#9011ff:__0__~~ : All users can view/edit item.
** ~~#9011ff:__1__~~ : Only admin can view/edit item.
* __logo__ ''string Optional'': The logo of the tracker
* __useFormClasses__ ''integer Optional'': Whether to use form classes. Possible values are:
** ~~#9011ff:__0__~~ : Do not use form classes.
** ~~#9011ff:__1__~~ : Use form classes.
* __formClasses__ ''string Optional'': Sets classes for form to be used in Tracker Plugin (e.g., col-md-9).
* __tabularSync__ ''string Optional'': Comma-separated list of import-export formats to synchronize the tracker data with.
* __tabularSyncModifiedField__ ''integer Optional'': Choose one of the tracker fields if remote items update its value every time a change happens. This will ensure only updated items get synchronized when importing from remote source.
* __tabularSyncLastImport__ ''integer Optional'': This tracks the last date/time when this tracker was synchronized with remote source. Subsequent import-export imports will only fetch content newer than this date. Reset to something in the past if you want to re-import.
* __tabularSyncLastImportSkipUpdate__ ''string Optional'': By default, last import time gets reset every time an import happens. Check this option if you want the last import time to be static and kept what is entered above. Possible values:
** ~~#9011ff:__y__~~ : skip resetting the last import time
** ~~#9011ff:__n__~~ : don't skip resetting the last import time

{DIV}

{DIV(class="content-section d-none" id="create-trackers-item")}
!!! Create a tracker item.

Create a new item in the specified tracker with the provided field values.

{TABS(name="doc-create-trackers-item" tabs="Request URL| cURL | PHP | JavaScript | Response" toggle="y" inside_pretty="n")}

{DIV()}
{CODE(caption="Request URL - trackers" colors="http" theme="default")}
https://example.com/api/trackers/{trackerId}/items
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="cURL - trackers" colors="http" theme="default")}
curl --request POST \
--url "https://example.com/api/trackers/16/items" \
--header "accept: application/json" \
--header "Authorization: Bearer <API_TOKEN>" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "fields[trackertestTitle]=Title One"
  {CODE}
  {DIV}

  /////
  {DIV()}
  {CODE(caption="PHP - trackers" colors="php" theme="default")}
  <?php

  $url = 'https://example.com/api/trackers/16/items';

  $data = [
    'fields[trackertestTitle]' => 'Title One'
  ];

  $headers = [
    'Accept: application/json',
    'Authorization: Bearer <API_TOKEN>',
    'Content-Type: application/x-www-form-urlencoded'
  ];

  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

  $response = curl_exec($ch);

  $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  if ($http_code === 200) {
    $data = json_decode($response, true);
    print_r($data);
  } else {
    echo 'Error: HTTP status code ' . $http_code;
  }

  curl_close($ch);

  ?>
  {CODE}
  {DIV}

  /////
  {DIV()}
  {CODE(caption="Javascript - trackers" colors="javascript" theme="default")}
  const formData = new URLSearchParams({
  'fields[trackertestTitle]': 'Title One'
  });

  fetch('https://example.com/api/trackers/16/items', {
  method: 'POST',
  headers: {
  'Accept': 'application/json',
  'Authorization': 'Bearer <API_TOKEN>',
    'Content-Type': 'application/x-www-form-urlencoded'
    },
    body: formData.toString()
    })
    .then(res => {
    if (!res.ok) throw new Error("HTTP " + res.status);
    return res.json();
    })
    .then(data => {
    console.log(data);
    })
    .catch(err => {
    console.log('Fetch error: ' + err.message);
    });

    {CODE}
    {DIV}

    /////
    {DIV()}
    {CODE(caption="Response - trackers" colors="json" theme="default")}
    {
      "itemId":1576,
      "status":"o",
      "fields": {
        "trackertestTitle":"Title One"
      },
      "itemTitle":"Title One",
      "processedFields": {
        "trackertestTitle":"Title One"
      },
      "nextTicket":"cRjNNrBioLzcYxqwmrU-ywGuq-VDwyTHPjnqQsPDpLM"
    }
    {CODE}
    {DIV}

    {TABS}

!!!! Parameters

* __trackerId__ ''integer'' ~~#fe0000:*~~: The tracker ID in which to create the new item.

!!!! Request body

    Each field value should be provided using the format ~~#9011ff:__~np~fields[permanentName]=value~/np~__~~ (permanent names as keys or ins_FID keys can be used). eg. ~~#9011ff:__~np~fields[trackertestTitle]=My Item Title~/np~__~~

* __~np~fields[fieldPermanentName1]~/np~__ ''string'' ~~#fe0000:*~~: Value for the field with permanent name ~~#9011ff:__fieldPermanentName1__~~
* __~np~fields[fieldPermanentName2]~/np~__ ''string'' ~~#fe0000:*~~: Value for the field with permanent name ~~#9011ff:__fieldPermanentName2__~~

{DIV}

{DIV(class="content-section d-none" id="get-trackers-item")}
!!! Retrieve items from a specified tracker

Retrieve items from a specified tracker, including each item’s ID, status, and field data.

{TABS(name="doc-get-trackers-item" tabs="Request URL| cURL | PHP | JavaScript | Response" toggle="y" inside_pretty="n")}

{DIV()}
{CODE(caption="Request URL - trackers" colors="http" theme="default")}
https://example.com/api/trackers/{trackerId}
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="cURL - trackers" colors="http" theme="default")}
curl --request GET \
     --url "https://example.com/api/trackers/16" \
     --header "accept: application/json" \
     --header "Authorization: Bearer <API_TOKEN>" \
     --data-urlencode "maxRecords=5" \
     --data-urlencode "status=o"
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="PHP - trackers" colors="php" theme="default")}
<?php
  $url = 'https://example.com/api/trackers/16';
  $params = [
      'maxRecords' => '5',
      'status' => 'o'
  ];

  $url .= '?' . http_build_query($params);

  $headers = [
      'Accept: application/json',
      'Authorization: Bearer <API_TOKEN>'
  ];

  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

  $response = curl_exec($ch);

  if (curl_errno($ch)) {
      echo 'Error: ' . curl_error($ch);
  } else {
      $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
      if ($http_code === 200) {
          $data = json_decode($response, true);
          print_r($data);
      } else {
          echo 'Error: HTTP status code ' . $http_code;
      }
  }

  curl_close($ch);
?>
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Javascript - trackers" colors="javascript" theme="default")}
const params = new URLSearchParams({
  maxRecords: '5',
  status: 'o'
});

fetch('https://example.com/api/trackers/16' + '?' + params.toString(), {
  method: 'GET',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <API_TOKEN>'
  }
})
  .then(res => {
    if (!res.ok) throw new Error('HTTP ' + res.status);
    return res.json();
  })
  .then(data => {
    console.log(data);
  })
  .catch(err => {
    console.error('Fetch error:', err.message);
  });

{CODE}
{DIV}

  /////
{DIV()}
{CODE(caption="Response - trackers" colors="json" theme="default")}
{
  "trackerId": 16,
  "offset": -1,
  "maxRecords": 5,
  "result": [
    {
      "itemId": 1576,
      "status": "o",
      "fields": {
        "trackertestTitle": "Title One"
      }
    }
  ]
}
{CODE}
{DIV}

{TABS}

!!!! Parameters

* __trackerId__ ''integer'' ~~#fe0000:*~~: The ID of the tracker from which to retrieve items.
* __offset__ ''integer Optional'': The offset for pagination. Default is -1 (no offset).
* __maxRecords__ ''integer Optional'': The maximum number of records to return.
* __modifiedSince__ ''string Optional'': Return only records newer than the specified timestamp.
* __status__ ''string Optional'': Return only records with specific status. Possible values are:
** ~~#9011ff:__o__~~ : open
** ~~#9011ff:__p__~~ : pending
** ~~#9011ff:__c__~~ : closed
* __format__ ''string Optional'': Specify ~~#9011ff:__raw__~~ to return raw item values without any field processing.

{DIV}

{DIV(class="content-section d-none" id="duplicate-trackers")}
!!! Duplicate an existing tracker.

Duplicate an existing tracker.

{TABS(name="doc-duplicate-trackers" tabs="Request URL| cURL | PHP | JavaScript | Response" toggle="y" inside_pretty="n")}

{DIV()}
{CODE(caption="Request URL - trackers" colors="http" theme="default")}
https://example.com/api/trackers/{trackerId}/duplicate
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="cURL - trackers" colors="http" theme="default")}
curl --request POST \
     --url "https://example.com/api/trackers/16/duplicate" \
     --header "accept: application/json" \
     --header "Authorization: Bearer <API_TOKEN>" \
     --header "Content-Type: application/x-www-form-urlencoded" \
     --data-urlencode "name=TestTrackerDuplicated" \
     --data-urlencode "dupPerms=testtrackerduplicated"
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="PHP - trackers" colors="php" theme="default")}
<?php
$url = 'https://example.com/api/trackers/16/duplicate';

$data = [
    'name' => 'TestTrackerDuplicated',
    'dupPerms' => 'testtrackerduplicated'
];

$headers = [
    'Accept: application/json',
    'Authorization: Bearer <API_TOKEN>',
    'Content-Type: application/x-www-form-urlencoded'
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Error: ' . curl_error($ch);
} else {
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if ($http_code === 200) {
        $data = json_decode($response, true);
        print_r($data);
    } else {
        echo 'Error: HTTP status code ' . $http_code;
    }
}

curl_close($ch);
?>
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Javascript - trackers" colors="javascript" theme="default")}
const params = new URLSearchParams({
  name: 'TestTrackerDuplicated',
  dupPerms: 'testtrackerduplicated'
});

fetch('https://example.com/api/trackers/16/duplicate', {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <API_TOKEN>',
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: params.toString()
})
  .then(res => {
    if (!res.ok) throw new Error('HTTP ' + res.status);
    return res.json();
  })
  .then(data => {
    console.log(data);
  })
  .catch(err => {
    console.error('Fetch error:', err.message);
  });
{CODE}
{DIV}

  /////
{DIV()}
{CODE(caption="Response - trackers" colors="json" theme="default")}
{
  "trackerId": "17",
  "name": "TestTrackerDuplicated",
  "message": "Tracker 16 has been successfully duplicated."
}
{CODE}
{DIV}

{TABS}

!!!! Parameters

* __trackerId__ ''integer'' ~~#fe0000:*~~ : The ID of the tracker to duplicate.


!!!! Request body
  
* __name__ ''string'' ~~#fe0000:*~~ : The name for the duplicated tracker.
* __dupCateg__ ''string Optional~~ : The category of the new duplicated tracker
* __dupPerms__ ''string Optional~~ : The permanent name of the new duplicated tracker

{DIV}


{DIV(class="content-section d-none" id="clear-trackers-items")}
!!! Remove all items from a tracker.

Remove all items from a tracker.

{TABS(name="doc-clear-trackers-items" tabs="Request URL| cURL | PHP | JavaScript | Response" toggle="y" inside_pretty="n")}

{DIV()}
{CODE(caption="Request URL - trackers" colors="http" theme="default")}
https://example.com/api/trackers/{trackerId}/clear
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="cURL - trackers" colors="http" theme="default")}
curl --request POST \
     --url "https://example.com/api/trackers/17/clear" \
     --header "accept: application/json" \
     --header "Authorization: Bearer <API_TOKEN>"
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="PHP - trackers" colors="php" theme="default")}
<?php
$url = 'https://example.com/api/trackers/17/clear';

$headers = [
    'Accept: application/json',
    'Authorization: Bearer <API_TOKEN>'
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, ''); // No body
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Error: ' . curl_error($ch);
} else {
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if ($http_code === 200) {
        $data = json_decode($response, true);
        print_r($data);
    } else {
        echo 'Error: HTTP status code ' . $http_code;
    }
}

curl_close($ch);
?>
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Javascript - trackers" colors="javascript" theme="default")}
fetch('https://example.com/api/trackers/17/clear', {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <API_TOKEN>'
  }
})
  .then(res => {
    if (!res.ok) throw new Error('HTTP ' + res.status);
    return res.json();
  })
  .then(data => {
    console.log(data);
  })
  .catch(err => {
    console.error('Fetch error:', err.message);
  });
{CODE}
{DIV}

  /////
{DIV()}
{CODE(caption="Response - trackers" colors="json" theme="default")}
{
  "trackerId": 17,
  "name": "TestTrackerDuplicated",
  "message": "Tracker 17 has been successfully cleared."
}
{CODE}
{DIV}

{TABS}

!!!! Parameters

* __trackerId__ ''integer'' ~~#fe0000:*~~ : The ID of the tracker whose items should be removed.


{DIV}

{DIV(class="content-section d-none" id="dump-trackers-items")}
!!! Dump all tracker items in a CSV format.

Dump all tracker items in a CSV format.

{TABS(name="doc-dump-trackers-items" tabs="Request URL| cURL | PHP | JavaScript | Response" toggle="y" inside_pretty="n")}

{DIV()}
{CODE(caption="Request URL - trackers" colors="http" theme="default")}
https://example.com/api/trackers/{trackerId}/dump
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="cURL - trackers" colors="http" theme="default")}
curl --request GET \
     --url "https://example.com/api/trackers/16/dump" \
     --header "accept: text/csv" \
     --header "Authorization: Bearer <API_TOKEN>"
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="PHP - trackers" colors="php" theme="default")}
<?php
$url = 'https://example.com/api/trackers/16/dump';

$headers = [
    'Accept: text/csv',
    'Authorization: Bearer <API_TOKEN>'
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Error: ' . curl_error($ch);
} else {
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if ($http_code === 200) {
        // Save response as CSV file
        file_put_contents('tracker_dump.csv', $response);
        echo "CSV file saved as tracker_dump.csv\n";
    } else {
        echo 'Error: HTTP status code ' . $http_code;
    }
}

curl_close($ch);
?>

{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Javascript - trackers" colors="javascript" theme="default")}
fetch('https://example.com/api/trackers/16/dump', {
  method: 'GET',
  headers: {
    'Accept': 'text/csv',
    'Authorization': 'Bearer <API_TOKEN>'
  }
})
  .then(res => {
    if (!res.ok) throw new Error('HTTP ' + res.status);
    return res.blob(); // Receive as CSV blob
  })
  .then(blob => {
    // Save CSV file locally
    const file = new File([blob], 'tracker_dump.csv', { type: 'text/csv' });
    console.log('CSV file ready:', file);
  })
  .catch(err => {
    console.error('Fetch error:', err.message);
  });
{CODE}
{DIV}

  /////
{DIV()}
{CODE(caption="Response - trackers" colors="json" theme="default")}
itemId,status,created,lastModif,"Title -- 99",
1576,o,1761493369,1761493369,"Title One",
1578,o,1761502423,1761502423,"Title Two", 
{CODE}
{DIV}

{TABS}

!!!! Parameters

* __trackerId__ ''integer'' ~~#fe0000:*~~ : The ID of the tracker to dump.


{DIV}

{DIV(class="content-section d-none" id="export-trackers-yaml")}
!!! Export the tracker YAML profile.

Export the tracker YAML profile.

{TABS(name="doc-export-trackers-yaml" tabs="Request URL| cURL | PHP | JavaScript | Response" toggle="y" inside_pretty="n")}

{DIV()}
{CODE(caption="Request URL - trackers" colors="http" theme="default")}
https://example.com/api/trackers/{trackerId}/export
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="cURL - trackers" colors="http" theme="default")}
curl --request GET \
     --url "https://example.com/api/trackers/16/export" \
     --header "accept: application/json" \
     --header "Authorization: Bearer <API_TOKEN>"
{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="PHP - trackers" colors="php" theme="default")}
<?php
$url = 'https://example.com/api/trackers/16/export';

$headers = [
    'Accept: application/json',
    'Authorization: Bearer <API_TOKEN>'
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Error: ' . curl_error($ch);
} else {
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if ($http_code === 200) {
        $data = json_decode($response, true);
        print_r($data);
    } else {
        echo 'Error: HTTP status code ' . $http_code;
    }
}

curl_close($ch);
?>

{CODE}
{DIV}

/////
{DIV()}
{CODE(caption="Javascript - trackers" colors="javascript" theme="default")}
fetch('https://example.com/api/trackers/16/export', {
  method: 'GET',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <API_TOKEN>'
  }
})
  .then(res => {
    if (!res.ok) throw new Error('HTTP ' + res.status);
    return res.json();
  })
  .then(data => {
    console.log('YAML Export:', data);
  })
  .catch(err => {
    console.error('Fetch error:', err.message);
  });
{CODE}
{DIV}

  /////
{DIV()}
{CODE(caption="Response - trackers" colors="json" theme="default")}
~np~{
  "trackerId": 16,
  "yaml": "<div class=\"codecaption\">YAML</div><div class=\"codelisting_container\"><div class=\"icon_copy_code far fa-clipboard\" tabindex=\"0\"  data-clipboard-target=\"#codebox1\" ><span class=\"copy_code_tooltiptext\">Copy to clipboard</span></div><pre class=\"codelisting\"  data-theme=\"off\"  data-syntax=\"yaml\"  data-wrap=\"1\"  dir=\"ltr\"  style=\"white-space:pre-wrap; overflow-wrap: break-word; word-wrap: break-word;\" id=\"codebox1\" ><div class=\"code\">permissions: {  }\npreferences: {  }\nobjects:\n  -\n    type: tracker\n    ref: trackertestupdated\n    data:\n      name: TrackerTestUpdated\n      description: 'TrackerTestUpdated Description '\n      alt_closed_status: ''\n      alt_open_status: ''\n      alt_pending_status: ''\n      list_default_status: ''\n      restrict_end: '0'\n      form_classes: ''\n      restrict_start: '0'\n  -\n    type: tracker_field\n    ref: trackertestupdated_trackertestTitle\n    data:\n      name: Title\n      permname: trackertestTitle\n      tracker: '$profileobject:trackertestupdated$'\n      options:\n        samerow: 1\n      type: text_field\n      order: 10\n      description: 'Title Description'\n      visby: {  }\n      editby: {  }\n      flags:\n        - link\n        - list\n        - public\n        - mandatory\n  -\n    type: tracker_option\n    ref: trackertestupdated_sort_default_field\n    data:\n      tracker: '$profileobject:trackertestupdated$'\n      name: sort_default_field\n      value: modification</div></pre></div>"
}~/np~
{CODE}
{DIV}

{TABS}

!!!! Parameters

* __trackerId__ ''integer'' ~~#fe0000:*~~ : The ID of the tracker to export.


{DIV}

{DIV(class="content-section d-none" id="get-trackers-field")}

!!! Retrieve all fields of a tracker.

  Retrieve all fields of a tracker.

  {TABS(name="doc-get-trackers-field" tabs="Request URL| cURL | PHP | JavaScript | Response" toggle="y" inside_pretty="n")}

    {DIV()}
      {CODE(caption="Request URL - trackers" colors="http" theme="default")}
        https://example.com/api/trackers/{trackerId}/fields
      {CODE}
    {DIV}

    /////
    {DIV()}
    {CODE(caption="cURL - trackers" colors="http" theme="default")}
      curl --request GET \
          --url "https://example.com/api/trackers/16/fields" \
          --header "accept: application/json" \
          --header "Authorization: Bearer <API_TOKEN>"
    {CODE}
    {DIV}

    /////
    {DIV()}
      {CODE(caption="PHP - trackers" colors="php" theme="default")}
        <?php
        $url = 'https://example.com/api/trackers/16/fields';

        $headers = [
            'Accept: application/json',
            'Authorization: Bearer <API_TOKEN>'
        ];

        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        $response = curl_exec($ch);

        if (curl_errno($ch)) {
            echo 'Error: ' . curl_error($ch);
        } else {
            $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            if ($http_code === 200) {
                $data = json_decode($response, true);
                print_r($data);
            } else {
                echo 'Error: HTTP status code ' . $http_code;
            }
        }

        curl_close($ch);
        ?>
      {CODE}
    {DIV}

    /////
    {DIV()}
      {CODE(caption="Javascript - trackers" colors="javascript" theme="default")}
        fetch('https://example.com/api/trackers/16/fields', {
          method: 'GET',
          headers: {
            'Accept': 'application/json',
            'Authorization': 'Bearer <API_TOKEN>'
          }
        })
          .then(res => {
            if (!res.ok) throw new Error('HTTP ' + res.status);
            return res.json();
          })
          .then(data => {
            console.log('Tracker Fields:', data);
          })
          .catch(err => {
            console.error('Fetch error:', err.message);
          });
      {CODE}
    {DIV}

    /////
    {DIV()}
      {CODE(caption="Response - trackers" colors="json" theme="default")}
        {
          "fields": [
            {
              "fieldId": 99,
              "trackerId": 16,
              "name": "Title",
              "permName": "trackertestTitle",
              "options": "",
              "type": "t",
              "isMain": "y",
              "isTblVisible": "y",
              "position": 10,
              "isSearchable": "n",
              "isPublic": "y",
              "isHidden": "n",
              "isMandatory": "y",
              "description": "Title Description",
              "isMultilingual": "",
              "itemChoices": [],
              "errorMsg": "",
              "visibleBy": [],
              "editableBy": [],
              "descriptionIsParsed": "n",
              "validation": "",
              "validationParam": "",
              "validationMessage": "",
              "rules": null,
              "encryptionKeyId": null,
              "excludeFromNotification": "",
              "visibleInViewMode": "y",
              "visibleInEditMode": "y",
              "visibleInHistoryMode": "y",
              "options_array": [
                1,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "options_map": {
                "samerow": 1,
                "size": false,
                "prepend": false,
                "append": false,
                "max": false,
                "autocomplete": false,
                "exact": false,
                "labelasplaceholder": 0,
                "is_password": 0
              }
            }
          ],
          "types": {},
          "typesDisabled": {},
          "duplicates": []
        }
      {CODE}
    {DIV}

  {TABS}
!!!! Parameters

* __trackerId__ ''integer'' ~~#fe0000:*~~ : The ID of the tracker to retrieve fields from.

{DIV}
Show PHP error messages