Kaiku

← All documentation

Tracker API

Which requests of the widely used tracker’s REST API Kaiku answers, and where it behaves differently.

What it is

Kaiku answers the REST API of the self-hosted edition of the most widely used corporate tracker: the same paths, request bodies, response shapes, status codes and error format. A tool written for it is pointed at your workspace address with a token, and works.

We are not affiliated with that vendor, and compatibility is something we work at rather than a guarantee for every tool. If a tool you rely on does not behave, tell us — that is a bug to us.

GET /rest/api/2/serverInfo answers without signing in and reports a Server deployment. Tools use it to decide how to talk, and it is a quick way to check the address is right.

What is answered

Everything below is under /rest/api/2 unless it says otherwise.

AreaRequests
You and the servermyself, serverInfo, configuration, field, mypermissions
Projectsproject, project/search, project/{key} with /statuses, /versions, /components; creating, changing and deleting a project
Issuesissue — create, read, edit, delete; issue/{key}/assignee; issue/createmeta, issue/{key}/editmeta
Workflowissue/{key}/transitions — list and perform
Commentsissue/{key}/comment — list, add, edit, delete
Work logissue/{key}/worklog — list and add
Attachmentsissue/{key}/attachments to upload; attachment/{id} to read and delete; /secure/attachment/{id}/{filename} to download
Links and watchersissueLink, issueLinkType, issue/{key}/remotelink, issue/{key}/watchers
Searchsearch and search/jql, by GET and POST, under both /rest/api/2 and /rest/api/3 — see Search (JQL)
Reference dataissuetype, status, statuscategory, priority, resolution
Peopleuser, user/search, user/assignable/search, user/assignable/multiProjectSearch, users/search
Boards and sprintsUnder /rest/agile/1.0: board with its configuration, sprint, issue, backlog, epic; creating, starting, completing and deleting a sprint; moving issues into a sprint and back to the backlog

Where it differs

  • `/rest/api/3` is mostly absent. Only myself, search, search/jql and remotelink answer there. Use /rest/api/2 — tools written for the self-hosted edition already do.
  • Rich text is a string. Descriptions and comments are plain text, Markdown or the tracker’s wiki markup, sent and returned as strings. A description sent as a document object (the cloud edition’s format) is not read.
  • Not there at all: saved filters, dashboards, groups, bulk issue creation, and change history (expand=changelog).
  • Versions and components are listed as empty and cannot be created.
  • A project or issue you may not see is a 404, not a 403.
  • Archived issues are left out of search unless the query mentions archived.
  • Story points are customfield_10016 and the sprint is customfield_10020, as the tracker’s tools expect. Columns a project adds itself are customfield_2xxxx; GET field lists them.

Paging, errors and caching

  • Search pages with startAt and maxResults and returns total (all matches) and isLast. maxResults is 50 by default and at most 1000.
  • Errors have the tracker’s shape: {"errorMessages": […], "errors": {…}}. They are in English unless the request sends Accept-Language.
  • Every JSON answer to a GET carries an ETag; send it back as If-None-Match and an unchanged answer is a bodiless 304.
  • One attachment may be up to 100 MB. A description or a comment may be up to 100 KB of text; longer is refused with a 400, never cut.
  • Labels may not contain spaces.

Something missing, or not as described here? Write to hello@kaiku.tech