Hello,
I present to you below a communication solution through REST API queries to JIRA on-premise (local server in your company) in two variants:
- Scenario 1: Simple but paid after 30 days trial.
- Scenario 2: Simple and Free.
I have created 7 files with sample working code.
The activity packages available in UiPath Studio like UiPath.JiraSoftware.Activities

are based on cooperation with JIRA Cloud, where you can easily generate an API Token.
The solution below offers ready-made tools for companies that have a server version.
For JIRA automation you will need:
JIRA on-prem (I have version 7.0 Server in my organization) JIRA REST API Reference
JIRA permissions: password and login (as for standard user login)
I currently use these implementation in my JIRA automation. I share 11 source codes in vb.net for Jira with support of HttpClient() class.
Pros: Simple implementation. Free solution.
Cons: Requires creating an additional module to convert Jira fileds to JsonString, Example here: How do I create JSON Object from Dictionary(String, String) - #9 by Adrian_Star.
UiPath Studio with additional packages in project:
Microsoft.AspNet.WebApi.Client: 5.2.7,
System.Net.Http: 4.3.4,
UiPath.WebAPI.Activities: 1.6.0
Remember to add set of namespaces to Project Imports:
![]()
Generate token:
Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(String.Format("{0}:{1}", username, password)))
Basic In Aguments:
uriAs String =https://jira.example.com/
tokenAs String = eg.:XxxxXxxx==
Basic Out Arguments:
responseAs System.Net.Http.HttpResponseMessage
Sample VB.NET Code
Jira Create Issue:
Additional in Arguments:
JsonStringAs String ={"fields":{"mandatory_data"}}
Source Code
----------------------Source Code:----------------------
'Create a new HTTP request
DimclientAsHttpClient =NewHttpClient()
'Specify the target address
client.BaseAddress =NewUri(uri)'argument IN
'Clear header for new iteration
client.DefaultRequestHeaders.Accept.Clear()
'Enter new header parameters
client.DefaultRequestHeaders.Accept.Add(NewMediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Authorization =NewAuthenticationHeaderValue(“Basic”, token)
'Create query parameters
DimrequestAsHttpRequestMessage =NewHttpRequestMessage(HttpMethod.Post,"rest/api/2/issue")'(Method type, relative access path)
'Body of the query
request.Content =NewStringContent(JsonString, System.Text.Encoding.UTF8,"application/json")
'Indicate the service from which to reply to the inquiry
response = client.SendAsync(request).Result
----------------------End Source Code----------------------
Jira Edit Issue:
Additional in Arguments:
ProjectKeyAs String = eg.: “ABC-1234”
JsonStringAs String ={"fields":{"mandatory_data"}}
Source Code
----------------------Source Code:----------------------
'Create a new HTTP request
DimclientAsHttpClient =NewHttpClient()
'Specify the target address
client.BaseAddress =NewUri(uri)'argument IN
'Clear header for new iteration
client.DefaultRequestHeaders.Accept.Clear()
'Enter new header parameters
client.DefaultRequestHeaders.Accept.Add(NewMediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Authorization =NewAuthenticationHeaderValue(“Basic”, token)
'Create query parameters
DimrequestAsHttpRequestMessage =NewHttpRequestMessage(HttpMethod.Put,("rest/api/2/issue/"+ProjectKey+) '(Method type, relative access path)
'Body of the query
request.Content =NewStringContent(JsonString, System.Text.Encoding.UTF8,"application/json")
'Indicate the service from which to reply to the inquiry
response = client.SendAsync(request).Result
----------------------End Source Code----------------------
Jira Assign Issue:
Additional in Arguments:
ProjectKeyAs String = eg.: “ABC-1234”
Source Code
----------------------Source Code:----------------------
'Create a new HTTP request
DimclientAsHttpClient =NewHttpClient()
'Specify the target address
client.BaseAddress =NewUri(uri)'argument IN
'Clear header for new iteration
client.DefaultRequestHeaders.Accept.Clear()
'Enter new header parameters
client.DefaultRequestHeaders.Accept.Add(NewMediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Authorization =NewAuthenticationHeaderValue(“Basic”, token)
'Create query parameters
DimrequestAsHttpRequestMessage =NewHttpRequestMessage(HttpMethod.Put,("rest/api/2/issue/"+ProjectKey+"/assignee") '(Method type, relative access path)
'Body of the query
request.Content =NewStringContent(JsonString, System.Text.Encoding.UTF8,"application/json")
'Indicate the service from which to reply to the inquiry
response = client.SendAsync(request).Result
----------------------End Source Code----------------------
Jira Get Issue:
Additional in Arguments:
ProjectKeyAs String = eg.: “ABC-1234”
Source Code
----------------------Source Code:----------------------
'Create a new HTTP request
DimclientAsHttpClient =NewHttpClient()
'Specify the target address
client.BaseAddress =NewUri(uri)'argument IN
'Clear header for new iteration
client.DefaultRequestHeaders.Accept.Clear()
'Enter new header parameters
client.DefaultRequestHeaders.Accept.Add(NewMediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Authorization =NewAuthenticationHeaderValue(“Basic”, token)
'Create query parameters
DimrequestAsHttpRequestMessage =NewHttpRequestMessage(HttpMethod.Get,("rest/api/2/issue/"+ProjectKey) '(Method type, relative access path)
'No Body of the query
'Indicate the service from which to reply to the inquiry
response = client.SendAsync(request).Result
----------------------End Source Code----------------------
Jira Delete Issue:
Additional in Arguments:
ProjectKeyAs String = eg.: “ABC-1234”
Source Code
----------------------Source Code:----------------------
'Create a new HTTP request
DimclientAsHttpClient =NewHttpClient()
'Specify the target address
client.BaseAddress =NewUri(uri)'argument IN
'Clear header for new iteration
client.DefaultRequestHeaders.Accept.Clear()
'Enter new header parameters
client.DefaultRequestHeaders.Accept.Add(NewMediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Authorization =NewAuthenticationHeaderValue(“Basic”, token)
'Create query parameters
DimrequestAsHttpRequestMessage =NewHttpRequestMessage(HttpMethod.Delete,("rest/api/2/issue/"+ProjectKey) '(Method type, relative access path)
'No Body of the query
'Indicate the service from which to reply to the inquiry
response = client.SendAsync(request).Result
----------------------End Source Code----------------------
Jira Get Issue Transitions:
Additional in Arguments:
ProjectKeyAs String = eg.: “ABC-1234”
Source Code
----------------------Source Code:----------------------
'Create a new HTTP request
DimclientAsHttpClient =NewHttpClient()
'Specify the target address
client.BaseAddress =NewUri(uri)'argument IN
'Clear header for new iteration
client.DefaultRequestHeaders.Accept.Clear()
'Enter new header parameters
client.DefaultRequestHeaders.Accept.Add(NewMediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Authorization =NewAuthenticationHeaderValue(“Basic”, token)
'Create query parameters
DimrequestAsHttpRequestMessage =NewHttpRequestMessage(HttpMethod.Get,("rest/api/2/issue/"+ProjectKey+"/transitions" ) '(Method type, relative access path)
'No Body of the query
'Indicate the service from which to reply to the inquiry
response = client.SendAsync(request).Result
----------------------End Source Code----------------------
Jira Do Issue Transition:
Source Code
----------------------Source Code:----------------------
'Create a new HTTP request
DimclientAsHttpClient =NewHttpClient()
'Specify the target address
client.BaseAddress =NewUri(uri)'argument IN
'Clear header for new iteration
client.DefaultRequestHeaders.Accept.Clear()
'Enter new header parameters
client.DefaultRequestHeaders.Accept.Add(NewMediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Authorization =NewAuthenticationHeaderValue(“Basic”, token)
'Create query parameters
DimrequestAsHttpRequestMessage =NewHttpRequestMessage(HttpMethod.Post,("rest/api/2/issue/"+ProjectKey+"/transitions" ) '(Method type, relative access path)
'Body of the query
request.Content =NewStringContent(JsonString, System.Text.Encoding.UTF8,"application/json")
'Indicate the service from which to reply to the inquiry
response = client.SendAsync(request).Result
----------------------End Source Code----------------------
Jira Get Issue Fields:
Source Code
----------------------Source Code:----------------------
'Create a new HTTP request
DimclientAsHttpClient =NewHttpClient()
'Specify the target address
client.BaseAddress =NewUri(uri)'argument IN
'Clear header for new iteration
client.DefaultRequestHeaders.Accept.Clear()
'Enter new header parameters
client.DefaultRequestHeaders.Accept.Add(NewMediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Authorization =NewAuthenticationHeaderValue(“Basic”, token)
'Create query parameters
DimrequestAsHttpRequestMessage =NewHttpRequestMessage(HttpMethod.Get,("rest/api/2/field") '(Method type, relative access path)
'No Body of the query
'Indicate the service from which to reply to the inquiry
response = client.SendAsync(request).Result
----------------------End Source Code----------------------
Jira Add Comment to Issue:
Additional in Arguments:
ProjectKeyAs String = eg.: “ABC-1234”
Source Code
----------------------Source Code:----------------------
'Create a new HTTP request
DimclientAsHttpClient =NewHttpClient()
'Specify the target address
client.BaseAddress =NewUri(uri)'argument IN
'Clear header for new iteration
client.DefaultRequestHeaders.Accept.Clear()
'Enter new header parameters
client.DefaultRequestHeaders.Accept.Add(NewMediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Authorization =NewAuthenticationHeaderValue(“Basic”, token)
'Create query parameters
DimrequestAsHttpRequestMessage =NewHttpRequestMessage(HttpMethod.Post,("rest/api/2/issue/"+ProjectKey+"/comment" ) '(Method type, relative access path)
'Body of the query
request.Content =NewStringContent(JsonString, System.Text.Encoding.UTF8,"application/json")
'Indicate the service from which to reply to the inquiry
response = client.SendAsync(request).Result
----------------------End Source Code----------------------
Jira Delete Comment from Issue:
Additional in Arguments:
ProjectKeyAs String = eg.: “ABC-1234”
Comment_IDAs String = eg. 100234
Source Code
----------------------Source Code:----------------------
'Create a new HTTP request
DimclientAsHttpClient =NewHttpClient()
'Specify the target address
client.BaseAddress =NewUri(uri)'argument IN
'Clear header for new iteration
client.DefaultRequestHeaders.Accept.Clear()
'Enter new header parameters
client.DefaultRequestHeaders.Accept.Add(NewMediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Authorization =NewAuthenticationHeaderValue(“Basic”, token)
'Create query parameters
DimrequestAsHttpRequestMessage =NewHttpRequestMessage(HttpMethod.Delete,("rest/api/2/issue/"+ProjectKey+"/comment/" + Comment_ID ) '(Method type, relative access path)
'No Body of the query
'Indicate the service from which to reply to the inquiry
response = client.SendAsync(request).Result
----------------------End Source Code----------------------
Jira Add Attachment to Issue:
Additional in Arguments:
ProjectKeyAs String = eg.: “ABC-1234”
filePathAs String = eg. C:\file\test.jpg
fileNameAs String = eg. test.jpg
Content_TypeAs String = MIME type eg. image/jpg
Source Code
----------------------Source Code:----------------------
'Create a new HTTP request
DimclientAsSystem.Net.Http.HttpClient =NewSystem.Net.Http.HttpClient()
'Specify the target address
DimpostUrlAsString= uri +"rest/api/2/issue/"+ProjectKey+"/attachments"
client.BaseAddress =NewSystem.Uri(postUrl)
'Clear header for new iteration
client.DefaultRequestHeaders.Accept.Clear()
'Enter new header parameters
client.DefaultRequestHeaders.Add("X-Atlassian-Token","nocheck")
client.DefaultRequestHeaders.Accept.Add(NewMediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Authorization =NewAuthenticationHeaderValue("Basic", token)
'Create query parameters
DimcontentAsMultipartFormDataContent =NewMultipartFormDataContent()
'Body of the query
DimfileContentAsHttpContent =NewByteArrayContent(File.ReadAllBytes(filePath))
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(Content_Type)
content.Add(fileContent,"file",fileName)
'Indicate the service from which to reply to the inquiry
response = client.PostAsync(postUrl, content).Result
----------------------End Source Code----------------------

