API clients are programs that act on behalf of users to access data. While client identification is not strictly required, it does help Atlassian to troubleshoot problems faster, customers to better manage their security exposure, and developers to get better answers to tricky problems. For example, many Atlassian API clients use a default user agent string provided by whatever HTTP library they are using. However, multiple programs may be written with Python Requests, all sending indistinguishable user agent headers. This makes it harder to sort the traffic from your integration, from whatever customers and other integrations may be sending.
Identify HTML links into our product user interface
with a unique atlOrigin
query string parameter added to the URL.
This is similar to the UTM parameter used for click tracking in marketing web sites.
In this context,
uniqueness is guaranteed by Atlassian issuing the origin ID.
For example, if linking into Jira’s Issue page:
1 2https://devpartisan.atlassian.net/browse/TIS-11?atlOrigin=abc123
We generate a unique value for each integration so if you have more than 1 integration, please make sure we have properly associated each integration to a different origin value.
We do not recommend using this parameter in REST APIs or OAuth 2.0 flows, where this parameter might not be properly ignored.
Identify HTTP clients making REST API requests with a unique user agent HTTP header. In this context, uniqueness is not guaranteed. Instead, uniqueness is based on following convention:
1 2{atlassian product}-{source product}-int/{version} ({optional})
atlassian product
atlassian
. Or, for integration with specific products, name that product like jira
, or jirasoftware
. This helps us understand the scope of impact for API problems.source product
microsoft
. Or, for integration with specific products, name that product like visualstudiocode
, or just code
. This lets us know who to contact in case of API problems and should be sufficient unique to find all related API requests and responses for diagnosis.int
version
optional
User-Agent: jirasoftware-jellyfish-int/1.7.3 (requests/2.24)
.While standard HTTP headers allow for mixed case and spaces, we recommend all lower case and no spaces to help with tracking in our log files. For example:
1 2User-Agent: jira-code-int/1.0.0
We also recommend using the same User Agent header,
regardless of technology.
For example, you might have a microservice in Python that makes HTTP GET requests,
and another in Java for dispatching webhooks as HTTP POST requests.
If both work together as "Jira integration",
use the same User Agent header in both.
The same applies for development and testing tools,
like curl.
Sending the same User Agent header will help identify your requests.
Alternatively,
you may identify the different clients in the optional
segment,
keeping the starting segment the same.
This convention is for programs acting REST API clients, not browser clients.
Identify OAuth 2.0 (3LO) clients with a unique client ID. In this context, uniqueness is guaranteed by Atlassian issuing the origin ID in the App management user interface. This client ID is not affected by the Name given to an App.
While this mechanism is unique identification of your App for the purpose of REST API authentication, we also recommend the above identification mechanisms to help with monitoring and troubleshooting. OAuth 2.0 (3LO) is exclusive of Connect Apps. Clients will either use OAuth 2 or the authentication associated with Connect, but not both.
Identify Connect Apps with a unique key in the App descriptor. In this context, uniqueness is not guaranteed. Instead, uniqueness is based on following convention (the same convention as the first segment of the user agent header):
1 2{atlassian product}-{source product}-int
atlassian product
jira
. This helps us understand the scope of impact for API problems.source product
microsoft
. Or, for integration with specific products, name that product like visualstudiocode
, or just code
. This lets us know who to contact in case of problems and should be sufficient unique to find all related API requests and responses for diagnosis.int
While this mechanism is unique identification of your App for the purpose of Connect App authentication, we also recommend user agent headers and origin ID query parameters to help with monitoring and troubleshooting. Connect Apps are exclusive with OAuth 2.0 (3LO). Clients will either use the authentication associated with Connect or OAuth 2, but not both.
Rate this page: