An Atlassian Resource Identifier (ARI) is a globally unique identifier for objects across Atlassian. ARIs are used throughout the Teamwork Graph API to identify specific objects when querying relationships and traversing the graph.
An ARI is similar to a URL—it's a standardized way to uniquely identify any resource in the Atlassian ecosystem. Just as a URL can point to any web resource, an ARI can point to any Atlassian resource: a Jira work item, a Confluence page, a user account, or any other object.
ARIs ensure that when you reference an object in your queries, you're referring to exactly the right object, even when similar objects exist across different sites or products.
ARIs follow a consistent pattern across all Atlassian resources:
1 2ari:cloud:{app}:{siteId}:{objectType}/{objectId}
| Component | Description |
|---|---|
ari | The scheme identifier. Always ari for Atlassian Resource Identifiers. |
cloud | The environment. Indicates this resource exists in Atlassian Cloud (as opposed to Server or Data Center). |
{app} | The Atlassian product or service that owns this resource (e.g., jira, confluence, townsquare, identity). |
{siteId} | The cloud site identifier (also called cloud ID) that uniquely identifies your Atlassian instance. Some resources like users use a double colon (::) instead of a site ID. |
{objectType} | The type of resource (e.g., issue, page, project, user). |
{objectId} | The unique identifier for the specific resource within that object type. |
While each object type has its own specific pattern, here are some common patterns you'll see:
Jira resources typically follow this pattern:
1 2ari:cloud:jira:{siteId}:{objectType}/{objectId}
Examples:
ari:cloud:jira:a436116f-02ce-4520-8fbb-7301462a1674:issue/8843576ari:cloud:jira:a436116f-02ce-4520-8fbb-7301462a167:project/12345Atlassian-wide resources (like Atlassian projects) typically use the townsquare namespace:
1 2ari:cloud:townsquare:{siteId}:{objectType}/{objectId}
Examples:
ari:cloud:townsquare:a436116f-02ce-4520-8fbb-7301462a1674:project/ATLAS-103368User accounts and identity-related resources use the identity namespace and omit the site ID:
1 2ari:cloud:identity::{objectType}/{objectId}
Examples:
ari:cloud:identity::user/5fb4febcfacfd60076a1c699ari:cloud:identity::team/19441f6d-f53e-4e35-a89f-265a30db4e68User and team ARIs use identity as the app and have a double colon (::) instead of a site ID, since user accounts and teams exist across all Atlassian sites.
Your site ID, also called the cloud ID, uniquely identifies your Atlassian instance. Most ARIs require a site ID to identify which instance the resource belongs to.
To find your site ID:
Make a GET request to the following endpoint, replacing yourinstancename with your Atlassian site's name:
1 2https://yourinstancename.atlassian.net/_edge/tenant_info
In the JSON response, find the cloudId field. This is your site ID.
Example response:
1 2{ "cloudId": "a436116f-02ce-4520-8fbb-7301462a1674", "tenantId": "a436116f-02ce-4520-8fbb-7301462a1674", "realm": "prod" }
In this example, the site ID is a436116f-02ce-4520-8fbb-7301462a1674.
Your site ID is the same across all Atlassian products in your instance. Once you find it, you can use it to construct ARIs for any Jira, Confluence, or other Atlassian resources in that instance.
When querying the Teamwork Graph API, you'll use ARIs in several ways:
When traversing relationships, ARIs identify the starting point and connected objects:
1 2MATCH (user:AtlassianUser {ari: 'ari:cloud:identity::user/5fb4febcfacfd60076a1c699'}) -[:atlassian_user_reported_jira_work_item]->(issue:JiraWorkItem) RETURN user, issue
Use the Cypher query in a GraphQL request like so:
1 2query test_getJiraWorkItem($cypherQuery: String!, $params: CypherRequestParams) { cypherQuery(query: $cypherQuery, params: $params) { edges { node { columns { key value { __typename ... on CypherQueryResultNode { id data { ... on JiraWorkItem { summary } } } } } } } } }
Read more about making a request with Cypher queries here
Use an ARI to retrieve a specific object using a Cypher query:
1 2MATCH (issue:JiraWorkItem {ari: 'ari:cloud:jira:cloud123:issue/12345643'}) RETURN issue
or
1 2MATCH (page: ConfluencePage {ari: 'ari:cloud:confluence:cloud123:page/12345623}) RETURN page
This will allow you to return a specific object if you have the object's ARI
The TWG API also has a few special fields that allows you to lookup an object type directly without a Cypher query
1 2query test_directlook { jiraWorkItem(id: "ari:cloud:jira:cloud123:issue/1234567") { id ... } }
See the full documentation on direct object lookups
You may find yourself wanting to traverse the graph starting at a specific object (for example, a Jira WorkItem). However, you aren't sure what the ARI of the object is. Here are the ways in which you can discover the ARI:
The Teamwork Graph API allows consumers to pass in a URL in replacement of an ARI for a Cypher query.
In the background, the API is able to resolve the URL into an ARI for use with the Cypher query
Every Atlassian user will have an ARI. This can be easily found:
home.atlassian.comhttps://home.atlassian.com/o/xxx/people/**accountId**?cloudId=yyyaccountId from the URLari:cloud:identity::user/**accountId**Often times, the easiest way is to traverse the graph from another object you do know the ARI of.
The easiest example is to use your AtlassianUser ARI:
For example: If I wanted to find the ARI of a specific Jira WorkItem, I could query all the WorkItems I am assigned to by using this Cypher query:
1 2MATCH (user:AtlassianUser {ari: 'ari:cloud:identity::user/5fb4febcfacfd60076a1c699'}) -[:atlassian_user_assigned_jira_worhok_item]->(issue:JiraWorkItem) RETURN issue
The response returned from a GraphQL request with this Cypher query will contain the ARI of the resource you are interested in.
Read more about making a request with a Cypher queries here
Rate this page: