API

Issue tracking

Search, create, edit, transition, rank, link, comment on and log work on issues.

See Tasks.

Every route below, with its parameters, request and response, errors and samples, is in the API reference.

RouteWhat it does
GET /v1/orgs/:orgId/issues/calendar/agendaThe caller's dates between from and to (YYYY-MM-DD, at most 100 days); tzOffset in minutes east of UTC dates sprint boundaries.
POST /v1/orgs/:orgId/issues/calendar/schedule/:issueKeyBooks time for an issue in one of the caller's Mail calendars (a mailbox they're a member of; its default calendar unless calendarId): the event links back to the issue, and the issue lists the event. Guests aren't invited.
POST /v1/orgs/:orgId/issues/searchThe same search as GET /issues with the query in the body (long queries).
POST /v1/orgs/:orgId/issues/links/amongLinks among up to 500 issues (by id), each once from its outward side: timeline dependencies.
GET /v1/orgs/:orgId/issuesSearches with the query language (jql), paged. Default order: most recently updated.
GET /v1/orgs/:orgId/issues/exportIssues matching a query as a CSV (Jira-style columns) or JSON download, up to 10,000.
POST /v1/orgs/:orgId/issues/importImports a Jira CSV export (or this API's JSON export) into a space, 200 rows per call: pass startRow and keyMap from the previous answer until done. Space admins only.
GET /v1/orgs/:orgId/issues/placesPlaces for an issue's location (docs/tasks/locations.md): up to 5 named like q (3 to 200 characters), nearest near (lat,lon) first. Shown to pick from, never kept: saving { address } looks the pick up again as a place to keep. Counts against the hour's address lookups (maps.places.searchHour); 429 past it.
GET /v1/orgs/:orgId/issues/labelsLabels in use (most used first), for suggestions; space narrows to one space.
POST /v1/orgs/:orgId/issuesCreates an issue. Catalog fields take names or ids, people take ids or emails, parent an issue key.
POST /v1/orgs/:orgId/issues/rankReorders issues: puts them (in order) right before or after another issue.
POST /v1/orgs/:orgId/issues/bulkRuns one operation (edit, labels, transition, comment, move, delete, watch, unwatch) on up to 200 issues; each reports its own result.
GET /v1/orgs/:orgId/issues/:issueKeyEverything the issue page shows: fields, description, comments, links, attachments, children, transitions.
PATCH /v1/orgs/:orgId/issues/:issueKeyEdits fields (status changes go through transitions).
DELETE /v1/orgs/:orgId/issues/:issueKeyDeletes an issue with its comments, attachments, work logs and subtasks.
GET /v1/orgs/:orgId/issues/:issueKey/transitionsTransitions available from the issue's status, with the reason when a condition blocks one.
POST /v1/orgs/:orgId/issues/:issueKey/transitionsMoves the issue through its workflow (by transition id or name, or the target status name).
POST /v1/orgs/:orgId/issues/:issueKey/approvals/:approvalIdApproves or declines a service request as one of its approvers; a final decision moves it on.
POST /v1/orgs/:orgId/issues/:issueKey/moveMoves the issue (and its subtasks) to another space under a new key; the old key keeps working.
POST /v1/orgs/:orgId/issues/:issueKey/cloneCopies an issue (optionally with subtasks and links) and links the copy to the original.
GET /v1/orgs/:orgId/issues/:issueKey/childrenChild issues (subtasks, or stories of an epic).
GET /v1/orgs/:orgId/issues/:issueKey/historyField changes, newest first.
GET /v1/orgs/:orgId/issues/:issueKey/commentsComments, oldest first (order=desc for newest first). Internal comments only for agents.
POST /v1/orgs/:orgId/issues/:issueKey/commentsAdds a comment (Markdown; mention people as @[Name](user:usr_…)). Internal comments are for service desk agents.
PATCH /v1/orgs/:orgId/issues/:issueKey/comments/:commentIdEdits a comment (the previous body is kept as a revision) or changes its visibility.
DELETE /v1/orgs/:orgId/issues/:issueKey/comments/:commentIdDeletes a comment.
GET /v1/orgs/:orgId/issues/:issueKey/comments/:commentId/revisionsEarlier versions of an edited comment.
POST /v1/orgs/:orgId/issues/:issueKey/comments/:commentId/reactionsToggles the caller's reaction.
GET /v1/orgs/:orgId/issues/:issueKey/linksIssue links and remote links (web pages, Notes pages, branches, commits, pull requests, deployments).
POST /v1/orgs/:orgId/issues/:issueKey/linksLinks to another issue by link type (id, name, or either direction's wording, e.g. "is blocked by").
DELETE /v1/orgs/:orgId/issues/:issueKey/links/:linkIdRemoves a link from both issues.
POST /v1/orgs/:orgId/issues/:issueKey/remote-linksLinks a web page or Notes page.
DELETE /v1/orgs/:orgId/issues/:issueKey/remote-links/:linkIdRemoves a remote link.
GET /v1/orgs/:orgId/issues/:issueKey/attachmentsAttachments.
POST /v1/orgs/:orgId/issues/:issueKey/attachmentsStarts an upload: returns a presigned PUT (15 minutes, size and type signed). Finish with /complete.
POST /v1/orgs/:orgId/issues/:issueKey/attachments/:attachmentId/completeFinishes an upload once the file is in place.
GET /v1/orgs/:orgId/issues/:issueKey/attachments/:attachmentIdA 5-minute download link (inline=1 opens images, PDFs and plain text in the browser).
DELETE /v1/orgs/:orgId/issues/:issueKey/attachments/:attachmentIdDeletes an attachment and its file.
GET /v1/orgs/:orgId/issues/:issueKey/worklogsWork logs.
POST /v1/orgs/:orgId/issues/:issueKey/worklogsLogs work ("1h 30m" or seconds); the remaining estimate goes down unless told otherwise.
PATCH /v1/orgs/:orgId/issues/:issueKey/worklogs/:worklogIdChanges a work log.
DELETE /v1/orgs/:orgId/issues/:issueKey/worklogs/:worklogIdDeletes a work log (its time goes back on the remaining estimate).
POST /v1/orgs/:orgId/issues/:issueKey/watchersStarts or stops watching (the caller, or someone else with manage watchers).
POST /v1/orgs/:orgId/issues/:issueKey/votesVotes for an issue, or withdraws the vote.