This API allows developers to create, update, and inquire about issues in RMTrack. The core access method is based on REST concepts, such that the API consists of web pages that respond to requests. For example to get the detailed information about an existing issue a developer makes a request to the following url: http://myserver.com/RMT/RMTrackAPI/IssueDetails.ashx?IssueId=17

Note that issuing the underlying HTTP request is complicated by authentication requirements.

How to Access the API

The core access mechanism of the API is HTTP. A client simply makes an HTTP request of the appropriate resource and parses the returned XML.

A sample .NET client is provided. The RMTrackApiClient namespace provides a simple implementation to make requests of the REST API. This client should be suitable for most needs, but in certain circumstances it may be necessary to issue HTTP requests directly against the REST API.

The .NET client is easy to use:

CopyC#
RMTrackService RMTrack = new RMTrackService("http://localhost/RMT/RMTrackApi", "AccessKey", "SecretKey");

string NewIssueXml =
  "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" +
  "<IssueCreate>" +
  "  <Fields>" +
  "      <ProjectId>24</ProjectId>" +
  "      <ResolutionCode>New</ResolutionCode>" +
  "      <StatusCode>Openish</StatusCode>" +
  "      <AssignedToUserId>jqa</AssignedToUserId>" +
  "      <Summary>A new problem</Summary>" +
  "  </Fields>" +
  "</IssueCreate>";

string ResponseXml = RMTrack.IssueDetailsPost(NewIssueXml);

Note: The "AccessKey" and "SecretKey" values can be found on the API Access Site Option page in RMTrack.

Issue Fields

The available fields for an issue includes not only the fields defined in the application (Administration->Customize->IssueFields) but also the following internal fields:

Field Name

Description

IssueId

The issue's id field

IssueNumber

The issue's id within its project (only available when the Site Option Issue Numbering is set to per project)

ProjectId

The issue's project id field

ResolutionCode

The issue's resolution code

StatusCode

The issue's status code

AssignedToUserId

The user id the issue is currently assigned to

CreatedByUserId

The user id that created the issue

DateTimeOpened

The date and time the issue most recently transitioned to a resolution state with a StatusCode of Opened.

DateOpened

The date the issue most recently transitioned to a resolution state with a StatusCode of Opened (the time component is 00:00:00).

DateTimeClosed

The date and time the issue most recently transitioned to a resolution state with a StatusCode of Closed.

DateClosed

The date the issue most recently transitioned to a resolution state with a StatusCode of Closed (the time component is 00:00:00).

DateTimeLastUpdated

The date and time the issue was last updated.

DateLastUpdated

The date the issue last updated (the time component is 00:00:00).

Fixed

Flag whether the issue is considered "fixed". This is determined by the issue's resolution state and the workflow associated with the issue's project

Valid

Flag whether the issue is considered "valid". This is determined by the issue's resolution state and the workflow associated with the issue's project

CreatedByUserId

The user id that created the issue

CreatedByUserId

The user id that created the issue

CreatedByUserId

The user id that created the issue

Date and Time Values

Date and time fields are always returned as UTC values and must be submitted as UTC values.

JSON Support

JSON formatting of responses, and requests, is supported by adding a "&Format=json" query string parameter.

Dates and date and time fields are returned as strings formatted as ISO 8601 date format (e.g. "2008-04-12T12:53Z").

.NET Support

A sample .NET client is provided. The RMTrackApiClient namespace provides a simple implementation to make requests of the REST API. This client should be suitable for most needs, but in certain circumstances it may be necessary to issue HTTP requests directly against the REST API.

COM Support (VBScript, VB6, ASP, et al)

The RMTrackApiClient has been built with COM interop enabled, so COM clients can access the same client API as .NET languages.

The progid is "RMTrackApiClient.RMTrackService", and to create an instance you can:

CopyVBScript
dim RMTrackService
dim NewIssueXml
dim ResponseXml

set RMTrackService = CreateObject("RMTrackApiClient.RMTrackService")

RMTrackService.Initialize "http://localhost/RMT/RMTrackApi", "access_key", "secret_key"

NewIssueXml = _
    "<?xml version=""1.0"" encoding=""utf-8"" ?>" + _
    "<IssueCreate>" + _
    "  <Fields>" + _
    "      <ProjectId>24</ProjectId>" + _
    "      <ResolutionCode>New</ResolutionCode>" + _
    "      <StatusCode>Openish</StatusCode>" + _
    "      <AssignedToUserId>jqa</AssignedToUserId>" + _
    "      <Summary>A new problem</Summary>" + _
    "  </Fields>" + _
    "</IssueCreate>"

ResponseXml = RMTrackService.IssueDetailsPost(NewIssueXml, False)