Jira
Read, search, create, and transition issues on a Jira Cloud site using the Jira Cloud REST API v3.
Standard-library Python only (no requests). Authenticates with HTTP Basic
auth using your Atlassian account email and an API token.
Operations
| operation | Jira endpoint | Required inputs |
|---|---|---|
get_issue |
GET /rest/api/3/issue/{issueKey} |
issueKey |
search |
GET /rest/api/3/search/jql?jql=... |
jql |
create_issue |
POST /rest/api/3/issue |
projectKey, summary (+ issueType) |
get_transitions |
GET /rest/api/3/issue/{issueKey}/transitions |
issueKey |
do_transition |
POST /rest/api/3/issue/{issueKey}/transitions |
issueKey, transitionId |
All operations also require site (your Jira Cloud domain) and apiKey.
Outputs
Every call publishes:
result— the raw Jira JSON response body (as a string). Fordo_transition, which returns HTTP 204 with no body on success,resultis a small{"transitioned": true, ...}confirmation object.status— the HTTP status code as a string (e.g.200,201,204).
Non-2xx responses are not treated as failures: the status and Jira's error JSON are returned so the caller can inspect them. Only transport-level failures (DNS, connection refused, timeout) fail the step.
Getting the apiKey
- Go to https://id.atlassian.com/manage-profile/security/api-tokens.
- Click Create API token, name it, and copy the token.
- The
apiKeyinput is your Atlassian account email and the token joined with a colon:[email protected]:your_api_token.
InTouch base64-encodes this and sends it as Authorization: Basic ...,
exactly as the Jira Cloud Basic-auth scheme requires.
Inputs
| input | default | notes |
|---|---|---|
apiKey |
(required) | email:api_token for Basic auth. |
operation |
(required) | One of the operations above. |
site |
(required) | your-domain or your-domain.atlassian.net. |
issueKey |
"" |
Issue key or id, e.g. PROJ-123. |
jql |
"" |
JQL query for search. |
maxResults |
20 |
1–100, for search. |
fields |
summary,status,assignee |
Field list for get_issue / search. |
projectKey |
"" |
Project key for create_issue. |
issueType |
Task |
Issue type name for create_issue. |
summary |
"" |
Title for create_issue. |
description |
"" |
Plain text; wrapped into Atlassian Document Format on create. |
transitionId |
"" |
Transition id (from get_transitions) for do_transition. |
Examples
1. Look up an issue
operation = get_issue
site = acme
apiKey = [email protected]:ATATT3xFf...
issueKey = ENG-42
fields = summary,status,assignee
Returns the issue JSON for ENG-42 (status = 200).
2. Search open bugs with JQL
operation = search
site = acme.atlassian.net
apiKey = [email protected]:ATATT3xFf...
jql = project = ENG AND issuetype = Bug AND statusCategory != Done ORDER BY created DESC
maxResults = 25
Returns matching issues as JSON.
3. Create then transition an issue
Create:
operation = create_issue
site = acme
apiKey = [email protected]:ATATT3xFf...
projectKey = ENG
issueType = Task
summary = Wire up nightly export
description = Add a scheduled job that exports the report each night.
List available transitions (get_transitions with the new issue key), then
move it forward:
operation = do_transition
site = acme
apiKey = [email protected]:ATATT3xFf...
issueKey = ENG-101
transitionId = 31
On success status is 204 and result confirms the transition.